有没有一种简单的方法来判断Python中的元组列表是否相同(每个位置上都是相同的元组,其中一个元组是相同的,如果它们对应的元素是相同的)?我知道如何手动循环遍历列表并比较每个元素,但想知道是否有任何库函数可以做到这一点?
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 ...
但是请注意,这只是一种练习。 - jwilnera
和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
a == b
怎么样? - jwilner