python 字典按值的大小降序排列,且不改变键值
时间: 2023-04-09 14:01:10 浏览: 125
可以使用sorted函数和lambda表达式来实现:
```python
d = {'a': 10, 'b': 5, 'c': 20, 'd': 15}
sorted_d = dict(sorted(d.items(), key=lambda x: x[1], reverse=True))
print(sorted_d)
```
输出结果为:
```
{'c': 20, 'd': 15, 'a': 10, 'b': 5}
```
这样就按值的大小降序排列了,且不改变键值。
相关问题
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()` 函数将排序后的元组转换为字典。
python中一个字典如何按键值对中的值从高到低排序,相同的值按键的大小降序排列?
在Python中,如果你想要按照字典值从高到低,同时如果值相同则按键(字典的键)大小进行降序排序,你可以先将字典转换为元组列表,其中每个元素是一个包含键值对的二元组,然后对这个列表进行排序。这里有一个示例:
```python
# 假设你有这样一个字典
my_dict = {'c': 5, 'a': 7, 'b': 5, 'd': 1}
# 首先将字典转换为元组列表,元组的第一个元素是值,第二个元素是键
tuple_list = sorted(my_dict.items(), key=lambda x: (-x[1], x[0]))
# 排序后的结果
sorted_dict = dict(tuple_list)
print(sorted_dict)
```
在这个例子中,`sorted()`函数的`key`参数接受一个函数,我们传递了一个匿名函数`lambda x: (-x[1], x[0])`,它返回一个元组。第一个元素`-x[1]`表示我们希望值降序排列,因为`-`会使得原来的正数变成负数;如果值相等,那么就会看第二个元素`x[0]`,也就是键,由于Python默认字符串和数字比较时是升序,所以这会按照键的字母顺序进行升序排列。
注意,字典本身是无序的,上述代码返回的是一个新的已排序的字典。
阅读全文