检查元组列表是否相同
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
中,你可以检查两个元组列表
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
有没有一种简单的方法来查看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
中,你可以检查两个元组列表
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