如何对Python字典按字母顺序排序且保留原有属性不改变字典类型
Python 字典按key字母排序且保留原生字典类型方案
前置说明
Python 3.7及以上官方标准中,内置普通dict默认支持保留插入顺序,无需依赖OrderedDict即可实现排序后保留字典属性。
实现代码
注意不要使用dict作为变量名,会覆盖Python内置的字典类,我们将原字典命名为original_dict示例:
# 原未排序字典 original_dict = {'zebra': ['file1.txt'], 'alpha': ['file2.txt', 'file3.txt']} # 按key不区分大小写的字母顺序排序,生成原生字典 sorted_dict = {key: original_dict[key] for key in sorted(original_dict.keys(), key=lambda x: x.lower())}
效果验证
运行后sorted_dict的输出完全符合需求:
print(sorted_dict) # 输出:{'alpha': ['file2.txt', 'file3.txt'], 'zebra': ['file1.txt']} print(type(sorted_dict)) # 输出:<class 'dict'> 完全保留原生字典的所有属性和方法
注意事项
- 如果需要区分大小写排序,去掉
lambda表达式中的.lower()即可。 - Python 3.6及更早版本中,普通字典不支持保留插入顺序,若要使用该方案建议升级Python版本,否则只能使用
OrderedDict实现有序字典。
内容的提问来源于stack exchange,提问作者David R
相关产品推荐
相关产品推荐

