Python sorted() 排序大小写问题与解决方案

Felix
Felix
发布时间:2026-10-13 | 2人浏览过
原创

本文探讨Python中sorted()函数对字典键排序时受字母大小写影响的机制。通过示例展示大写优先于小写的排序结果,并提供将键统一转为小写后再排序的解决方案,确保排序符合预期。

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表