今天在写代码时发现了字符串比较的问题,python在字符串比较中暗藏玄机。

c语言中字符串比较会看ascii码的大小。

python中比较如下:

strs = ['fly','flypod','sbc','abcd']

print(max(strs))  # input: sbc

print(min(strs))  # input: abcd

这就奇了怪了,是什么原因呢?

原来python中的string比较的不是字符串长度大小,而是比较使用的字典序,而不是单纯的长度比较。和c语言中的ASCII比较相似。

因为:'s' > 'f' > 'a'    第一个字符比较完大小就不比较后续字符了,所以'abcd'最小,'sbc'最大。

如果是 'fly' & 'flypod'  谁先结束谁最小,故前者小于后者。