python 使用sorted 对列表降序排序 使用lambda表达式
时间: 2023-05-12 18:06:35 浏览: 126
可以这样写:
lst = [1, 3, 2, 5, 4]
sorted_lst = sorted(lst, key=lambda x: -x)
print(sorted_lst)
输出结果为:
[5, 4, 3, 2, 1]
相关问题
python sorted 应用lambda表达式 运行原理
Python的sorted()函数拥有lambda表达式作为参数的特性,该lambda表达式用于设定排序的规则。sorted()函数会对传入的序列进行排序,并返回一个新的排好序的序列。
当我们使用lambda表达式作为排序规则时,sorted()函数会使用该表达式进行比较。在lambda表达式中,我们可以使用任意的比较方式来决定序列元素的排序顺序。比如,我们可以使用<符号来对数字类型进行排序,使用字符串中的lower()方法对字符串进行排序,或者自定义函数来对复杂类型进行排序。
具体来说,sorted()函数首先会将序列中的元素一个一个取出,并将其传入lambda表达式中。表达式所返回的值将作为排序依据。一次排序可能需要多次执行lambda表达式,直到所有的元素都被排序完毕并组成了一个新的排好序的序列。
总之,python sorted函数应用lambda表达式的运行原理是:使用lambda表达式设定排序规则,sorted()函数将序列中的元素逐个传入表达式,以表达式的返回值作为比较依据来对元素进行排序,直到所有元素排序完成并组成新的排好序的序列。
python 对lambda表达式
Python中的lambda表达式是一种匿名函数,可以用一行代码来表示简单的函数。它的语法结构为"lambda 参数列表: 表达式"。其中,参数列表是用逗号分隔的形式,而表达式则是一个返回值的表达式。
比如,以下是一个lambda表达式的例子,用于计算两个数的和:
```
add = lambda x, y: x + y
print(add(2, 3)) # 输出5
```
lambda表达式通常被用于需要定义简短的函数时,比如排序、过滤、映射等函数。在这些情况下,我们可以使用lambda表达式来避免定义一个完整的函数。
以下是一些常用的用法:
1. 在sort()或sorted()函数中用作key参数,进行自定义排序
```
a = [(1, 2), (4, 1), (9, 10), (13, -3)]
a.sort(key=lambda x: x[1]) # 按元组第二个元素进行排序
print(a) # 输出[(13, -3), (4, 1), (1, 2), (9, 10)]
```
2. 在filter()函数中进行过滤操作
```
a = [1, 2, 3, 4, 5]
b = list(filter(lambda x: x % 2 == 0, a)) # 过滤出所有偶数
print(b) # 输出[2, 4]
```
3. 在map()函数中进行映射操作
```
a = [1, 2, 3, 4, 5]
b = list(map(lambda x: x * 2, a)) # 将所有数乘以2
print(b) # 输出[2, 4, 6, 8, 10]
```