Python 3.7+字典有序,可通过sorted()函数结合items()方法按键或值排序:1. 按键排序用sorted(d.items());2. 按值排序用sorted(d.items(), key=lambda x: x[1]);3. 降序加reverse=True;4. 只获取排序键列表用sorted(d, key=d.get);5. 值列表用sorted(d.values())。

Python中字典本身是无序的,但从Python 3.7+开始,字典保持插入顺序。如果要按键或值进行排序,可以使用内置的sorted()函数结合字典的.items()方法来实现。
按字典的键排序
使用sorted()对字典的键进行升序排序:
d = {'banana': 3, 'apple': 4, 'pear': 1, 'orange': 2}
按键排序
sorted_by_key = dict(sorted(d.items()))
print(sorted_by_key)
输出: {'apple': 4, 'banana': 3, 'orange': 2, 'pear': 1}
按字典的值排序
通过设置sorted()的key参数为lambda x: x[1],可以按值排序:
d = {'banana': 3, 'apple': 4, 'pear': 1, 'orange': 2}
按值升序排序
sorted_by_value = dict(sorted(d.items(), key=lambda x: x[1]))
print(sorted_by_value)
输出: {'pear': 1, 'orange': 2, 'banana': 3, 'apple': 4}
按值降序排序
sorted_by_value_desc = dict(sorted(d.items(), key=lambda x: x[1], reverse=True))
print(sorted_by_value_desc)
输出: {'apple': 4, 'banana': 3, 'orange': 2, 'pear': 1}
只获取排序后的键或值列表
有时你只需要排序后的键或值:
立即学习“Python免费学习笔记(深入)”;
# 获取按值排序的键列表 keys_sorted_by_value = sorted(d, key=d.get) print(keys_sorted_by_value) # 输出: ['pear', 'orange', 'banana', 'apple']获取排序后的值列表
values_sorted = sorted(d.values()) print(values_sorted)
输出: [1, 2, 3, 4]
基本上就这些。用sorted()配合key参数灵活控制排序方式,再转回字典即可。不复杂但容易忽略细节。











