('3','2')<('a','b')在python中为什么是true

('3','2')<('a','b')在python中为什么是true

你认为是什么?

这是底层逻辑,知道了没什么意义。
个人理解,就是比较对应的ascii,优先第一位相比,相同的情况下,其次第二位相比。

作为可迭代对象,无论字符串还是元组或列表,比较大小都是从首元素开始逐一比较的,ASCII码值高者即为大。题主所说的('3','2')<('a','b'),是因为'3'<'a',因此结果为真。把它们写成字符串,效果也是一样。例如:

>>> ord('3') # ascii码值
51
>>> ord('a') # ascii码值
97
>>> ('3','2')<('a','b') # 比较首元素即可得到结果
True
>>> ('b','2')<('a','b') # 前者首元素大
False
>>> '32' < 'ab' # 写成字符串也一样
True
>>> ('a','b','c')<('a','b') # 前两个元素相等,比较第3个,'c'大于None
False