今天在写代码时发现了字符串比较的问题,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' 谁先结束谁最小,故前者小于后者。