【发布时间】:2016-04-05 07:40:11
【问题描述】:
如果我有一个长列表:myList = [0,2,1,0,2,1],我将其分成两个列表:
a = [0,2,1]
b = [0,2,1]
我如何比较这两个列表以查看它们是否相等/相同,以及它们必须处于相同顺序的约束?
我看到一些问题要求通过对它们进行排序来比较两个列表,但在我的具体情况下,我不是检查排序比较,而是检查相同的列表比较。
【问题讨论】:
标签: python
如果我有一个长列表:myList = [0,2,1,0,2,1],我将其分成两个列表:
a = [0,2,1]
b = [0,2,1]
我如何比较这两个列表以查看它们是否相等/相同,以及它们必须处于相同顺序的约束?
我看到一些问题要求通过对它们进行排序来比较两个列表,但在我的具体情况下,我不是检查排序比较,而是检查相同的列表比较。
【问题讨论】:
标签: python
只需使用经典的== 运算符:
>>> [0,1,2] == [0,1,2]
True
>>> [0,1,2] == [0,2,1]
False
>>> [0,1] == [0,1,2]
False
如果相同索引处的元素相等,则列表相等。然后考虑订购。
【讨论】:
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
all(arr1 == arr2) 或(arr1 == arr2).all() 进行测试。
如果您只想检查它们是否相同,a == b 应该在考虑顺序的情况下为您提供真/假。
如果要比较元素,可以使用numpy进行比较
c = (numpy.array(a) == numpy.array(b))
在这里,c 将包含一个包含 3 个元素的数组,所有这些元素都为真(以您的示例为例)。如果a和b的事件元素不匹配,那么c中对应的元素就会为假。
【讨论】:
表达式a == b 应该可以完成这项工作。
【讨论】: