【问题标题】:Lexicographical order of numbers数字的字典顺序
【发布时间】:2019-08-06 09:14:59
【问题描述】:

我目前正在学习字典排序,但找不到多少数字。我找到的例子是基于What is lexicographical order?

在示例中,我说过

1 10 2

按字典顺序排列。答案是“10 按数字顺序排在 2 之后,但 10 按字母顺序排在 2 之前”。我想知道 “10 在 2 之前按字母顺序排列” 的真正含义。 10 是表示为 ASCII 中的字符还是什么?我真的很困惑。

它会是python中的东西吗:

ord(10) 

【问题讨论】:

  • ord(10) 是一个类型错误。 ord("1") < ord("2"),所以 "10" < "2" 因为当您按字母顺序排序时,您会逐个字符地排序。
  • @jonrsharpe 所以如果我比较 1 和 10,因为 1 匹配,所以 ord("0") 自动更大?
  • 看字典 - 先说短词。

标签: string sorting lexicographic


【解决方案1】:

是的,字典意味着文本。我会错排版。在讨论文本字符串时,通常使用文字文本字符串语法(对于某些编程语言)来明确这一点。 "10""2" 之前。

没有文本,只有编码文本。

这意味着字符集的字符编码。字符集是字符和代码点(整数)之间的映射。编码在代码点和用于该编码的代码单元序列之间映射。代码单元是固定大小的整数。当固定大小的整数存储为字节序列时,它具有字节顺序(除非大小为 1)。

字典式可以指按以下顺序排序:

  • 代码点值
  • 代码单元值
  • 字节值

对于某些字符集和编码,这些顺序都是相同的。对于其中一些,值都是相同的。

(不知道你为什么会提到 ASCII。你几乎可以肯定没有使用原生使用 ASCII 的编程环境。你应该在你的环境中查找它以避免 ASCII-splaining。Python 3。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-02
    • 2018-05-29
    • 2019-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-24
    相关资源
    最近更新 更多