一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Python中sorted()排序与字母大小写问题代码解析

时间:2020-01-14 编辑:袖梨 来源:一聚教程网

本篇文章小编给大家分享一下Python中sorted()排序与字母大小写问题代码解析,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。

在练习python时,对字典里的键用sorted排序时发现并没有按照预期排序

研究后发现字母大小写会影响排序

首先创建一个字典,键里面的首字母有大写有小写

favorite_digit = {
    'john' : 4, 
    'Tom' : 5, 
    'Lisa' : 9, 
    'liu' : 5, 
    'alice' : 0, 
    }
for name in sorted(favorite_digit.keys()):
  print(name.title())

运行后发现与预期不符合。

Lisa

Tom

Alice

John

Liu

接着不使用title函数又进行排序

for name in sorted(favorite_digit.keys()):
  print(name)

运行结果

Lisa

Tom

alice

john

liu

结果发现,sorted先对首字母大写进行排序,然后才对小写字母排序。正因为使用了title,使得排序看起来十分混乱。

为了避免此类情况的发生,先创建一个空白字典将原先字典键小写化储存,然后遍历原先的字典,将键转化为小写,同时将数据储存在新的字典中。

favorite_digit_lower = {}  #先创建一个字典将原先字典键小写化储存

for name, digit in favorite_digit.items():
  name = name.lower() #然后遍历原先的字典,将键转化为小写,同时将数据储存在新的字典中
  #print(name) #这里也可以加一个print检查name是否成功写入小写
  favorite_digit_lower [name] = digit #将原来字典的内容复制到新字典里
for name in sorted(favorite_digit_lower.keys()):
  print(name.title()) #再次打印,结果为预期结果

打印结果

Alice

John

Lisa

Liu

Tom

热门栏目