引言
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