python - 一个列表如何与另一个列表进行比较?
问题描述
在第一部分,我有 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
我的理解哪里错了?
解决方案
listx1.sort()
对列表进行就地排序,然后返回None
,就像所有没有特定返回值的函数和方法一样。所以你的测试:
listx1.sort() == listx2.sort()
实际上是None == None
,这是真的。
比较排序列表应该做的是:
listx1.sort()
listx2.sort()
list1 == list2
推荐阅读
- javascript - 这是在 React 中使用带有承诺的三元 if else 的不好方法吗
- python - 无法理解 boost python 函数导出中的语法
- linux - 如何通过 cscope 查找包含特定文件的文件
- ios - 如何创建圆形 UIImageView
- php - 如何在 php echo 中修复 html
- algorithm - 如何以最小的相邻元素交换对数组进行排序
- python - ValueError:使用参数lines = True在panda中读取json时的预期对象或值
- java - 如何检查字符串以空格开头或结尾
- php - 如何从多个输入文本中获取隐藏值?
- php - 使用一些记录创建文件集