引言
Python 中的字符串其实也是可以比较大小的,如下:
>>> 'a' < 'b'
True
>>> 'aa' < 'ab'
True
>>> 'abc' < 'acb'
True
本文简单介绍一下 Python 中字符串比较大小的原理。
原理
查阅 Python 官网文档可知,字符串是通过计算每个字符的 Unicode 编码来比较大小的。其中,计算 Unicode 编码使用 Python 内置的 ord() 函数。
又因为字符串是可迭代对象,所以先比较两个字符串的第 0 个字符的 Unicode 编码,大小关系即为两个字符串的大小关系,如果相等则继续比较后续字符,先终止迭代的被认为是小的。
示例
'a' 的 Unicode 编码是 97,'b' 的 Unicode 编码是 98,所以 'a' < 'b'
>>> ord('a')
97
>>> ord('b')
98
>>> 'a' < 'b'
True
'aa' 和 'ab' 的首位相同都是 'a',那么比较下一位,同上可得,'aa' < 'ab'
>>> 'aa' < 'ab'
True
'abc' 和 'acb' 的首位相同,比较下一位,'b' 的 Unicode 编码小于 'c',则可以确定 'abc' < 'acb',不需要再往下比较了。
>>> 'abc' < 'acb'
True










