我正在使用Python中的字符串比较。为什么'aa' < 'z'
评估为True。
此外,为什么'aa' < 'a'
评估为False。我试图解释'aa'的长度比'a'长,所以会更大。但是这种推理不适用于初始情况'aa'<'z'
'aa' < 'z' => True
'aa' < 'a' => False
答案 0 :(得分:2)
字符串比较使用lexicographical顺序。简而言之,这就是单词在字典中出现的顺序。您的示例如下所示:
'a' < 'aa'
很显然,True
是'aa' < 'z'
也是{{1}}。如果两个单词由相同的字符重复几次,则最短的单词将排在最前面。其余的只是字母顺序。
答案 1 :(得分:1)
它们按字典顺序排列。首先按字母顺序排列,长度作为平局。就像在字典中一样,a
在aa
之前,z
在a
aa
z
之前。
答案 2 :(得分:0)
我认为,您可以帮助函数ord()理解它。 https://www.programiz.com/python-programming/methods/built-in/ord
如果看到您的示例'aa'<'a'=>来自'aa'的错误第一个符号具有代表Unicode字符的整数 97 并且结果为 97 <97 =>错误。如果我们接下来看到您的示例'aa'<'z'=> True。 Python仅看到第一个符号,例如'a'<'z'== 97 <122 => True 。
希望我能帮助您!