【Python】字符串是如何比较大小的?

阅读 157

2022-02-06

引言

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

参考

精彩评论(0)

0 0 举报