python 如何对字典排序

python 如何对字典排序

作者:Rhett Bai发布时间:2026-01-06阅读时长:0 分钟阅读次数:14

用户关注问题

Q
怎样根据字典的键对字典进行排序?

我有一个字典,想按照键的字母顺序对字典进行排序,应该怎么做?

A

使用 sorted 函数对字典按键排序

可以使用 Python 的 sorted() 函数对字典的键进行排序,示例如下:

my_dict = {'b': 2, 'a': 1, 'c': 3}
sorted_keys = sorted(my_dict.keys())
sorted_dict = {k: my_dict[k] for k in sorted_keys}
print(sorted_dict)  # 输出:{'a': 1, 'b': 2, 'c': 3}

这样可以获得一个按键排序的新字典。

Q
如何根据字典的值对字典进行升序或者降序排序?

我的字典中值是数字,我想根据值对字典排序,怎么实现按值排序?

A

使用 sorted 函数并指定 key 实现按值排序

可以通过 sorted() 函数指定 key 参数为字典的 get 方法来实现按值排序。示例如下:

my_dict = {'a': 3, 'b': 1, 'c': 2}
sorted_items = sorted(my_dict.items(), key=lambda item: item[1])
sorted_dict = dict(sorted_items)
print(sorted_dict)  # 输出:{'b': 1, 'c': 2, 'a': 3}

如果需要降序排列,可以在 sorted 函数中添加参数 reverse=True。

Q
怎么保持排序后的字典顺序不变?

排序后想保存字典里的顺序,有哪些方法让字典保持有序状态?

A

使用 collections.OrderedDict 来保持有序字典

虽然 Python 3.7+ 中普通字典默认已保持插入顺序,但如果需要兼容旧版本或者明确表达有序意图,可以使用 collections 模块的 OrderedDict。

示例如下:

from collections import OrderedDict
my_dict = {'b': 2, 'a': 1, 'c': 3}
sorted_items = sorted(my_dict.items())
ordered_dict = OrderedDict(sorted_items)
print(ordered_dict)  # 输出:OrderedDict([('a', 1), ('b', 2), ('c', 3)])

这样可以确保字典的顺序保持排序后的顺序。