为什么在Python中'aa'<'z'的评估结果为True?

时间:2019-02-06 21:26:07

标签: python string comparison string-comparison

我正在使用Python中的字符串比较。为什么'aa' < 'z'评估为True。 此外,为什么'aa' < 'a'评估为False。我试图解释'aa'的长度比'a'长,所以会更大。但是这种推理不适用于初始情况'aa'<'z'

'aa' < 'z' => True 'aa' < 'a' => False

3 个答案:

答案 0 :(得分:2)

字符串比较使用lexicographical顺序。简而言之,这就是单词在字典中出现的顺序。您的示例如下所示:

'a' < 'aa'

很显然,True'aa' < 'z'也是{{1}}。如果两个单词由相同的字符重复几次,则最短的单词将排在最前面。其余的只是字母顺序。

答案 1 :(得分:1)

它们按字典顺序排列。首先按字母顺序排列,长度作为平局。就像在字典中一样,aaa之前,za 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

希望我能帮助您!