今天我在练习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()) #再次打印,结果为预期结果
打印结果
您可能感兴趣的文章:python中sort和sorted排序的实例方法Python实现字典按key或者value进行排序操作示例【sorted】详解python中sort排序使用python排序函数sort()与sorted()的区别Python使用sort和class实现的多级排序功能示例Python使用sorted排序的方法小结在Python中使用sort()方法进行排序的简单教程Python中利用sorted()函数排序的简单教程python使用sorted函数对列表进行排序的方法python sort、sorted高级排序技巧Alice
John
Lisa
Liu
Tom