用lambda输出列表中key元素从大到小排序输出
时间: 2023-11-27 15:52:25 浏览: 63
假设有一个列表`lst`,其中每个元素都是一个字典,可以使用`sorted`函数和lambda表达式来实现按照字典中key元素从大到小排序输出,示例如下:
```
lst = [{'name': 'Alice', 'age': 25}, {'name': 'Bob', 'age': 20}, {'name': 'Charlie', 'age': 30}]
sorted_lst = sorted(lst, key=lambda x: x['name'], reverse=True)
print(sorted_lst)
# 输出 [{'name': 'Charlie', 'age': 30}, {'name': 'Bob', 'age': 20}, {'name': 'Alice', 'age': 25}]
```
这里的`key`参数指定了排序的关键字,即按照字典中的`name`元素进行排序,`reverse`参数指定了排序的顺序,即从大到小排序。
相关问题
list从大到小排序后,输出原索引
可以使用 Python 中的 `enumerate` 函数,它可以同时返回列表的值和对应的索引。然后按照列表的值进行排序,并输出排序后的元素的索引。以下是一个示例代码:
```python
lst = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
sorted_lst = sorted(enumerate(lst), key=lambda x: x[1], reverse=True)
sorted_idx = [x[0] for x in sorted_lst]
print("排序后的索引为:", sorted_idx)
```
输出:
```
排序后的索引为: [5, 4, 8, 10, 2, 7, 0, 6, 9, 1, 3]
```
其中,`enumerate` 函数返回的是一个可迭代对象,每个元素都是一个元组,包括元素的索引和值。`key` 参数指定按照元组的第二个元素(即列表的值)进行排序,`reverse=True` 表示按降序排序。最后,用列表推导式从排序后的元组中提取出排好序的索引列表。
Python怎么给字典排序,并从大到小输出
在 Python 中,字典是一种无序的数据类型,不能直接进行排序。但是可以通过将字典转换为元组列表,对元组列表进行排序,然后再将其转换回字典来实现排序。
以下是一个示例代码,可以按照字典中的值从大到小排序并输出:
```python
d = {'apple': 20, 'banana': 10, 'orange': 30}
# 将字典转换为元组列表
items = d.items()
# 对元组列表按照第二个元素(即字典中的值)进行排序
sorted_items = sorted(items, key=lambda x: x[1], reverse=True)
# 将排序后的元组列表转换回字典
sorted_dict = dict(sorted_items)
# 输出结果
print(sorted_dict)
```
输出结果:
```
{'orange': 30, 'apple': 20, 'banana': 10}
```
在以上示例代码中,我们使用 `items()` 方法将字典转换为元组列表,然后使用 `sorted()` 函数对元组列表进行排序,排序时通过 `key` 参数指定按照元组中的第二个元素(即字典中的值)进行排序,同时设置 `reverse=True` 表示降序排列。最后,我们再将排序后的元组列表转换回字典,并输出排序后的字典。