python字典根据值进行降序排序
时间: 2023-09-11 08:09:03 浏览: 47
可以使用sorted函数结合lambda表达式实现,具体代码如下:
```
my_dict = {'a': 5, 'b': 3, 'c': 8, 'd': 1}
sorted_dict = dict(sorted(my_dict.items(), key=lambda x: x[1], reverse=True))
print(sorted_dict)
```
输出结果为:
{'c': 8, 'a': 5, 'b': 3, 'd': 1}
请问,还有其他问题需要我回答吗?
相关问题
python 字典按键值降序排列
你可以通过以下代码实现 Python 字典按键值降序排列:
```python
my_dict = {'a': 5, 'b': 10, 'c': 8}
sorted_dict = dict(sorted(my_dict.items(), key=lambda x: x[1], reverse=True))
print(sorted_dict)
```
输出:
```
{'b': 10, 'c': 8, 'a': 5}
```
其中,`sorted()` 函数的 `key` 参数指定了按照字典的键值进行排序,`reverse` 参数为 `True` 表示降序排列。最后通过 `dict()` 函数将排序后的元组转换为字典。
用lambda函数对字典排序是,我想先按照字典的值进行降序排序后,然后值相等的时候
可以使用lambda函数进行多级排序,首先按照字典的值进行降序排序,然后如果值相等,再按照字典的键进行升序排序,例如:
```python
my_dict = {'apple': 5, 'banana': 2, 'orange': 4, 'pear': 3, 'grape': 5}
sorted_dict = sorted(my_dict.items(), key=lambda x: (-x[1], x[0]))
print(sorted_dict) # [('apple', 5), ('grape', 5), ('orange', 4), ('pear', 3), ('banana', 2)]
```
这里使用lambda表达式 `(-x[1], x[0])` 来进行多级排序,先按照字典的值进行降序排序,如果值相等,则按照字典的键进行升序排序。注意,sorted()函数返回一个排序后的元素列表,因此对于字典,我们需要先使用items()方法将其转化为元素列表,再进行排序。