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

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

本文探讨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 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。