【发布时间】:2015-05-28 03:33:19
【问题描述】:
有没有一种简单的方法可以查看 python 中的元组列表是否相同(每个位置的元组相同,如果对应的元素相同,则元组相同)?我知道如何手动循环遍历列表并比较每个元素,但想知道是否有任何库函数可以做到这一点?
【问题讨论】:
-
a == b怎么样?
标签: python list compare tuples
有没有一种简单的方法可以查看 python 中的元组列表是否相同(每个位置的元组相同,如果对应的元素相同,则元组相同)?我知道如何手动循环遍历列表并比较每个元素,但想知道是否有任何库函数可以做到这一点?
【问题讨论】:
a == b 怎么样?
标签: python list compare tuples
您可以使用 cmp() 比较两个列表的元素。
list1 = [('a', 1), ('b', 1)]
list2 = [('a', 1), ('b', 1)]
print cmp(list1, list2)
如果我们到达其中一个列表的末尾,则较长的列表“更大”。如果我们用尽两个列表并共享相同的数据,则结果为平局,即返回 0。
【讨论】:
len(list1) == len(list2) and all(a == b for a,b in zip(list1, list2))
这是我的第一个猜测,但我只是尝试了显而易见且简单的解决方案,并且也很有效:
list1 == list2
【讨论】:
len(list_1) == len(list_2) and ... 但同样,这应该被视为一种练习。
在python 3.x,你可以检查两个元组列表
a 和 b 因此:
import operator
a = [(1,2),(3,4)]
b = [(3,4),(1,2)]
# convert both lists to sets before calling the eq function
print(operator.eq(set(a),set(b))) #True
【讨论】: