python如何对字典的值排序

python如何对字典的值排序

作者:Elara发布时间:2026-01-13阅读时长:0 分钟阅读次数:6

用户关注问题

Q
怎样按照字典中数值从小到大排序?

我有一个字典,想根据它的值进行升序排序,有没有简单的方法实现?

A

使用sorted函数对字典按值升序排序

可以使用Python内置的sorted函数,结合字典的items()方法进行排序。示例代码如下:

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

这样可以得到一个按值排序后的元组列表。

Q
如何将排序后的字典按值重新转换成字典?

对字典进行排序后,我想要一个新的字典,保留排序后的顺序,该怎么做?

A

使用dict和sorted结合创建有序字典

通过sorted函数排序字典元素后,使用dict()函数把排序结果转换回字典,在Python 3.7及以上版本中,字典是保持插入顺序的。示例代码:

my_dict = {'x': 10, 'y': 5, 'z': 15}
sorted_dict = dict(sorted(my_dict.items(), key=lambda x: x[1]))
print(sorted_dict)  # 输出:{'y': 5, 'x': 10, 'z': 15}

这样可以得到一个按值排序且仍为字典的新对象。

Q
能不能按照字典的值进行降序排序?

我想从大到小排序字典中的值,应该怎么写代码?

A

在sorted函数中添加reverse参数实现降序排序

在使用sorted函数时,添加参数reverse=True,可以对字典的键值对按照值进行降序排序。示例:

scores = {'Tom': 88, 'Jerry': 92, 'Spike': 85}
sorted_scores = sorted(scores.items(), key=lambda item: item[1], reverse=True)
print(sorted_scores)  # 输出:[('Jerry', 92), ('Tom', 88), ('Spike', 85)]

这样就能得到按值降序排列的元组列表。