检查元组列表是否相同

Checking if a list of tuples are the same

有没有一种简单的方法来查看python中的元组列表是否相同(每个位置的元组相同,如果对应的元素相同,则元组相同)?我知道如何手动遍历列表并比较每个元素,但想知道是否有任何库函数可以做到这一点?

len(list1) == len(list2) and all(a == b for a,b in zip(list1, list2))

那是我的第一个猜测,但我只是尝试了明显而简单的解决方案并且也有效:

list1 == list2

您可以使用 cmp() 比较两个列表的元素。

list1 = [('a', 1), ('b', 1)]
list2 = [('a', 1), ('b', 1)]

print cmp(list1, list2)

如果我们到达其中一个列表的末尾,则较长的列表是"larger."如果我们用尽两个列表并共享相同的数据,则结果是平局,这意味着返回 0。

python 3.x中,你可以检查两个元组列表 ab 因此:

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