怎么使用python对字典进行排序?

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}

只获取排序后的键或值列表

有时你只需要排序后的键或值:

# 获取按值排序的键列表
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参数灵活控制排序方式,再转回字典即可。不复杂但容易忽略细节。