Python字典按照value排序
在Python中,字典(dict)可以用来储存任意数量的键值对。表现为键值对形式:键对应着值,可以通过键获取相应的值。在某些场景中,我们需要按照字典中的值进行排序,这时就需要用到Python字典按照value排序的方法。
排序原理
在Python中,字典是无序的。所以我们需要将字典转化为一个由元组(tuple)组成的列表形式,每个元组是由(key, value)组成。在这个列表中排序,最后再将其转化成字典。
按照value升序排序
例子
d = {'apple': 30, 'banana': 20, 'pear': 50}
sorted_d = sorted(d.items(), key=lambda x: x[1])
print(sorted_d)
输出:
[('banana', 20), ('apple', 30), ('pear', 50)]
解释:
- 首先,用
d.items()
把字典转化为一个元素为元组的列表。 key=lambda x: x[1]
指定按照元组的第二个元素(value)排序。- 最后,用sorted()方法进行排序,列表中的每个元素都是一个元组。
代码解析
我们将字典d转化为一个元素为元组的列表。
d = {'apple': 30, 'banana': 20, 'pear': 50}
sorted_d = sorted(d.items(), key=lambda x: x[1])
我们使用sorted()方法对元素为元组的列表按照第二个元素(即value)进行排序,sorted()方法会返回一个新的排好序的列表sorted_d。
print(sorted_d)
输出新的排好序的列表sorted_d:
[('banana', 20), ('apple', 30), ('pear', 50)]
因为字典是无序的,我们需要将排序好的列表再转化到字典中。
按照value降序排序
例子
d = {'apple': 30, 'banana': 20, 'pear': 50}
sorted_d = sorted(d.items(), key=lambda x: x[1], reverse=True)
print(sorted_d)
输出:
[('pear', 50), ('apple', 30), ('banana', 20)]
解释:
- 除了多了一个reverse参数之外,实现方式和升序排序一样。
reverse=True
具体指定排序的顺序为降序。
代码解析
d = {'apple': 30, 'banana': 20, 'pear': 50}
sorted_d = sorted(d.items(), key=lambda x: x[1], reverse=True)
其中,参数reverse=True指定按照从大到小逆序排列。
print(sorted_d)
输出排好序的列表sorted_d。
[('pear', 50), ('apple', 30), ('banana', 20)]
结论
在Python中,字典是无序的。如果需要按照value排序,需要将字典转化为一个元素为元组的列表形式,每个元组是由(key, value)组成。最后再将其转化为字典形式,进行操作。对于value的排序,需要使用sorted()方法,并指定key值为value,以及reverse参数控制升降序。
希望这篇文章对你理解Python字典按照value排序有所帮助!