[英]What happens when you compare lists of different sizes?
在Python中,我有两个大小不同的列表:
x = [[0,5,10],[0,10,5]]
y = [100,500,900]
运行时,每个步骤的比较结果是什么:
print x>y
例如,它如何比较说第一个元素:[0,5,10]与100?
在Python 3中,您无法比较这两个列表,因为它们的元素不是可比较的类型。
在Python 2,列表总是不是整数,周期长,所以你的x
总是比你的更大的y
无论是在什么样的元素x
的子列表。
真正的问题是如何比较[0,5,10]
与100
,即列表与整数。
答案取决于Python版本。 在Python 3.x中,无法比较这两种类型。 在Python 2.x中,列表总是大于整数,因为类型名称list
大于int
。
在您的示例中, print
语句位于
print x>y
建议您使用的是Python 2.x,因此答案是x > y
为True
。
这些比较不起作用。 list
和int
无法比较。 所以这行不通
只是为了扩展其他答案,该文档的内容还不错。 从2.7文档中 :
可以将序列对象与具有相同序列类型的其他对象进行比较。 比较使用字典顺序:首先比较前两个项目,如果它们不同,则确定比较的结果; 如果它们相等,则比较下两个项目,依此类推,直到用尽任何一个序列。 如果要比较的两个项目本身是相同类型的序列,则按字典顺序进行递归比较。 如果两个序列的所有项目比较相等,则认为序列相等。
从3.5文档 :
可以将序列对象与具有相同序列类型的其他对象进行比较。 比较使用字典顺序:首先比较前两个项目,如果它们不同,则确定比较的结果; 如果它们相等,则比较下两个项目,依此类推,直到用尽任何一个序列。 如果要比较的两个项目本身是相同类型的序列,则按字典顺序进行递归比较。 如果两个序列的所有项目比较相等,则认为序列相等。 如果一个序列是另一个序列的初始子序列,则较短的序列是较小的(较小的)序列。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.