gpt4 book ai didi

python - 根据重复项的自定义定义从列表中删除重复项

转载 作者:太空宇宙 更新时间:2023-11-04 10:23:07 26 4
gpt4 key购买 nike

我正在处理一个看起来像这样的嵌套列表。

mylist =[
["First", "Second", "Third"],
["First", "Second", "Third"],
...
]

目标是根据以下定义删除 mylist 的重复元素:如果 element1[0] == element2[0]element1[1,则一个元素等于另一个元素] == element2[1]。基本上,只计算前两个元素,忽略其余部分。

这看起来并不难,但我可能把它复杂化了并且遇到了麻烦。我想我已经接近解决方案,如果完成但没有人回答,我会发布。

我的主要问题:

我真的希望我能像在更传统的情况下那样将列表变成一个集合——有什么方法可以给集合一个自定义的等价定义吗?许多内置方法因此无法工作,重写它们有点痛苦,因为索引总是在某处搞砸了。

最佳答案

您可以创建一个存储数据的类并覆盖 __eq__:

class MyListThingy(object):
def __init__(self, data):
self.data = data
def __eq__(self, other):
return self.data[0]==other.data[0] and self.data[1]==other.data[1]

当然,这对使用散列的集合没有任何好处。为此你必须覆盖 __hash__:

def __hash__(self):
return hash((self.data[0],self.data[1]))

关于python - 根据重复项的自定义定义从列表中删除重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31064538/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com