【发布时间】:2015-01-20 05:02:27
【问题描述】:
对于 ascii 字符串 'b' > 'a' 和 'aa' > 'a',Python 的字符串排序相当简单,就像字典排序一样。但是当字符串是 unicode 时会发生什么?
我希望大于具有以下行为:
def greater_than(s1, s2):
return tuple(map(ord, s1)) > tuple(map(ord, s2))
即我们按字典顺序比较每个序数。这是python做的吗?
utf-8 编码根据序列中的字节数以递增的顺序对字符的第一个字节进行编码,因此如果字符串是 utf-8 编码的,则字节比较就可以完成。我也想知道比较是否以这种方式实现。
【问题讨论】:
-
我认为这是在
PyUnicode_Compare完成的,还没有找到它的来源。
标签: string python-3.x unicode