我想比较两个元组列表:
larry = [(1,'a'), (2, 'b')]
moe = [(2, 'b'), (1, 'a')]
这样列表中项目的顺序可能会有所不同。 是否有库函数可以执行此操作?
>> deep_equals(larry, moe)
True
最佳答案
如果我理解你的话,你的元组代表集合,你的列表代表集合。显而易见的事情是将它们转换为集合:
def setterific(l):
return frozenset(frozenset(p) for p in l)
setterific(larry) == setterific(moe)
这使用了 frozensets,因为在 python 中不能有集合的集合(因为集合是可变的);见How can I create a Set of Sets in Python? .
如果您只有一层集合,请使用 frozenset(larry) == frozenset(moe)
。
关于python - 如何对两个元组列表进行深度相等性比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9360057/