【问题标题】:Why does 'aa' < 'z' evaluate to True in Python?为什么 'aa' < 'z' 在 Python 中评估为 True?
【发布时间】:2019-06-30 22:42:35
【问题描述】:

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

'aa' &lt; 'z' =&gt; True 'aa' &lt; 'a' =&gt; False

【问题讨论】:

  • documentationhow to sort等网站,定义和演示字符串排序。正如发布指南告诉您的那样,我们希望您在发布问题之前进行此搜索。

标签: python string comparison string-comparison


【解决方案1】:

我认为,您可以帮助函数 ord() 理解它。 https://www.programiz.com/python-programming/methods/built-in/ord

如果看到您的示例 'aa' False 第一个符号来自 'aa' 有 一个表示 Unicode 字符的整数 97 和结果 97 错误。如果我们接下来看到您的示例 'aa' True。 Python 只看到第一个符号,像这样 'a' True

希望能帮到你!

【讨论】:

    【解决方案2】:

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

    a
    aa
    z
    

    显然'a' &lt; 'aa'True 以及'aa' &lt; 'z'。如果两个单词由重复多次的相同字符组成,则最短的单词会先出现。其余的,只是字母表的顺序。

    【讨论】:

      【解决方案3】:

      它们按字典顺序排列。首先按字母顺序,长度作为决胜局。就像在字典中一样,aaa 之前,在 z 之前。

      【讨论】:

        猜你喜欢
        • 2013-09-02
        • 2013-11-11
        • 2022-01-22
        相关资源
        最近更新 更多