声明:博主是个初学Python的小白,写的东西也是学习过程中自己不断尝试出来的一些知识,如果文章中有表述不恰当的地方还请各位大佬批评指正
这是一些没啥用的知识,有兴趣的话当冷知识看看就好
对于Python中的sort函数,想必大家都已经知道用它可以实现对一个数字列表从小到大的排序。但是,如果列表中的元素不是纯数字,而是字符串或数字与字符串混合的列表,sort函数会如何排序呢?
1.对于纯英文字符串
(1)列表中当元素字符串均为小写时,用sort排序,新列表将会以字符串的首字母在字母表的位置从前到后排序
示例:
l = ["abc", "bcd", "efg", "cde", "xyz"]
l.sort()
print(l)
输出结果:
[‘abc’, ‘bcd’, ‘cde’, ‘efg’, ‘xyz’]
(2)对于大小写混合的英文字符串,使用sort排序后,Python将会优先把首字母大写的字符串按照字母表顺序排列在列表左侧,其次才会按照字母表顺序排列首字母小写的字符串。(语言表达能力差,大家见谅,看代码秒懂)
示例:
l2 = ["abc", "Bcd", "Efg", "cde", "Xyz"]
l2.sort()
print(l2)
输出结果:[‘Bcd’, ‘Efg’, ‘Xyz’, ‘abc’, ‘cde’]
(3)特别注意,对于英文字符串,sort函数仅比较第一个字母,只有在第一个字母相同的情况下才会提取下一个字母做比较。也就是说,当字符串首字母均为小写,后续字母有大写时,含有大写字母的字符串不会被优先排序
(还是看代码,秒懂)
l = ['Abc', 'bcd', 'cDe']
l.sort()
print(l)
输出结果:[‘Abc’, ‘bcd’, ‘cDe’]
2.对于纯中文字符串的列表,Python将对照我国1981年发布的《汉字编码字符集》(GB2312)对首个汉字进行排序
示例:
l3 = ["你", "我", "他"]
l3.sort
print(l3)
输出结果:[‘他’, ‘你’, ‘我’]
3.对于中英文混合无数字的字符串,使用sort函数后Python将先按字母表顺序排列英文字符串,再按照GB2312对汉字排序
示例:
l4 = ["你", "我", "他", "you", "i", "he"]
l4.sort()
print(l4)
输出:[‘he’, ‘i’, ‘you’, ‘他’, ‘你’, ‘我’]
4.对于数字和其他字符混合的列表,用sort排序,运行程序会直接报错
感谢你看到这里,你的点赞收藏和关注就是对我学习最大的支持