如何在python中比较两个有序列表?

Jer*_*emy 81 python

如果我有一个长列表:myList = [0,2,1,0,2,1]我分成两个列表:

a = [0,2,1]
b = [0,2,1]
Run Code Online (Sandbox Code Playgroud)

我如何比较这两个列表,看它们是否相等/相同,约束条件必须是相同的顺序?

我已经看到了通过对它们进行排序来比较两个列表的问题,但在我的具体情况下,我没有检查排序的比较,而是检查相同的列表比较.

Max*_*ant 139

只需使用经典==运算符:

>>> [0,1,2] == [0,1,2]
True
>>> [0,1,2] == [0,2,1]
False
>>> [0,1] == [0,1,2]
False
Run Code Online (Sandbox Code Playgroud)

如果同一索引处的元素相等,则列表相等.然后考虑订购.

  • 这可能会使用 numpy 列表返回以下错误:`ValueError:具有多个元素的数组的真值不明确。使用 a.any() 或 a.all()` (4认同)
  • @Alex那是一个数组,而不是一个列表。它们都是有序数据类型,但概念上不同。应用于数组的操作将应用于其所有元素,但对于列表则不然。 (3认同)
  • @AlexReynolds 说的话。您必须使用“all(arr1 == arr2)”或“(arr1 == arr2).all()”进行测试。 (2认同)

Vas*_*nth 8

如果您只想检查它们是否相同,a == b那么在考虑订购时应该给出真/假.

如果您想比较元素,可以使用numpy进行比较

c = (numpy.array(a) == numpy.array(b))

这里,c将包含一个包含3个元素的数组,所有这些元素都是正确的(对于您的示例).如果a和b的元素不匹配,则c中的相应元素将为false.


Abh*_*ram 6

该表达式a == b应该可以完成工作。