学习Python中sort函数时领悟到的一点冷知识

声明:博主是个初学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排序,运行程序会直接报错

感谢你看到这里,你的点赞收藏和关注就是对我学习最大的支持在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值