首页 > 解决方案 > 一个列表如何与另一个列表进行比较?

问题描述

在第一部分,我有 2 个相同但未排序的列表。当我检查它们是否相等时,打印函数返回“False”,这是有道理的。

listx1, listx2=[9, 7, 5, 3], [3, 5, 7, 9] 
print(listx1 == listx2)     #returns False

当我对该列表进行排序时,打印函数返回“True”。至此,我明白了:

print(listx1.sort() == listx2.sort())   #returns True

现在,我使用 2 个不相等的列表并比较它们。这一次,print 函数也返回 False,这是有道理的。

listx3, listx4 =[5, 3, 2, 7], [3, 5, 7, 9]
print(listx3 == listx4)              #returns False

但是,即使在对它们进行排序之后(考虑到它们由不相等的元素组成),我在检查它们的相等性时也不应该得到“False”吗?在这里,我很困惑,因为在对 listx3 和 listx4 进行排序后,打印函数返回“True”。(根据下面写的代码)

print(listx3.sort() == listx4.sort())     #returns True

我的理解哪里错了?

标签: pythonlist

解决方案


listx1.sort()对列表进行就地排序,然后返回None,就像所有没有特定返回值的函数和方法一样。所以你的测试:

listx1.sort() == listx2.sort()

实际上是None == None,这是真的。

比较排序列表应该做的是:

listx1.sort()
listx2.sort()
list1 == list2

推荐阅读