'⒌' > '⑽ ' > '⑮',以及 "A"> "C"(这是一个全角 A),这看起来有点……非 -6ren">
gpt4 book ai didi

python - Python 字符串比较_真正_是如何工作的?

转载 作者:太空宇宙 更新时间:2023-11-04 00:27:50 25 4
gpt4 key购买 nike

因此,在 Python 中,字符串具有固有的顺序;

>>>'A' < 'B' < 'C'
True
>>>"angler" < "beta fish" < "coleocanth"
True

大多数消息来源都说 Python 中的字符串是按 ASCII 码排序的——但这显然是无稽之谈,因为 Python 3 字符串是 Unicode。

很明显,A、B、C 有一个定义的顺序……而且其他语言可能也有类似的字母顺序。

但是您如何排序,例如“♳”、“▧”和“ⵞ”?更重要的是,你如何订购A、𝐀、𝐴、𝑨、𝒜、𝓐、𝔄、𝔸、𝖠、𝗔、𝘈、𝙰、🄐、🅐、🅰、🇦、A和pos?

假设它回退到比较 Unicode 代码点;这将是最简单的并且似乎是一个合理的默认值,但它也建议,例如,`¾' < '⅐' < '↉' 和 '⓿' > '⓵' > '⒌' > '⑽ ' > '⑮',以及 "A"> "C"(这是一个全角 A),这看起来有点……非 Pythonic,即使它是一个非常奇怪的边缘情况。

是否使用了一套更复杂的规则,如果是,它们记录在何处?它是实现定义的还是有标准?

最佳答案

来自docs (令人沮丧的是,文档中没有提到字符串类型):

Strings (instances of str) compare lexicographically using the numerical Unicode code points (the result of the built-in function ord()) of their characters.

这是规范的,准确的执行。可以查看字符串比较的Python 3.6.3实现here .

关于python - Python 字符串比较_真正_是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46840092/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com