网站首页 > 基础教程 正文
sort函数
sort()方法是与列表一起使用的方法,使用lambda 函数为其元素定义自定义排序机制。该方法有一个key带有函数的可选参数。可以使用lambda来更改该列表元素的排序方式,而不是定义函数。li = [23, 56, 89, 32, 12]
li.sort(key=lambda x: str(x)[1])
print(li)
如果没有关键参数,[12, 23, 32, 56, 89]将是最终输出。但是看看上面编写的程序的输出。
输出:
[32、12、23、56、89]
在这里,仅根据元素的第二位数字而不是整数对元素进行排序。同样,可以使用任何自定义逻辑对值进行排序。
max函数
内置函数max()用于从值集合中查找最大值。
此函数还包含一个可选key参数,该参数可以采用lambda 函数来确定如何找到最大值。
li = [1, 0, -1, 2, -3]
print(max(li, key=lambda x: abs(x)))
从逻辑上讲,列表值中的最大值将为2。但是,使用了key参数并传递了lambda来在避免负号后找到最大值。
所以这段代码的输出将是-3。
-3
这就是在函数中使用lambda 的max()方式。
min函数
与该函数类似max(),min() 内置函数也使用key参数和 lambda 函数来自定义如何在值集合中选择最小值。
在此示例中,做一个小更改,要求lambda 函数返回每个带负号的值。
li = [1, 2, 3, 4, 5]
print(min(li, key=lambda x: -x))
在这里,已将每个值更改为负值。通常,最小值为1,但现在为5,因为-5是负值中的最小值。
输出:
5
该min()函数使用相同的概念max(),但用于选择最小值。
filter函数
该类filter()用于根据给定的函数从值集合中过滤值。它返回一个过滤器对象,需要在打印值之前将其转换为所需的数据类型。
可以使用lambda 函数来过滤值,而不是提供预定义的函数。
为给定函数返回的 所有元素都将被保留。任何返回的True东西都会被忽略。这是一个简单的例子。 False
li = ['bat', 'tip', 'cat', 'pet']
fr = filter(lambda x: x[1] == 'a', li)
print(list(fr))
在这里,检查了每个值的第二个字符是否具有‘a’. 任何不满足此条件的元素都会被拒绝。
因此输出将只有bat和cat作为过滤值。
[‘bat’、‘cat']
此处使用lambda函数作为必须如何过滤元素的决定器。
map函数
该类map()用于将函数应用于值集合中的每个元素。
示例包括将大写字符串转换为小写,以及将字符串值转换为整数。还有其他有用的应用程序。它返回一个映射对象,然后可以将其转换为任何所需的集合数据类型。
对于需要应用于每个元素的任何更改,可以将该函数替换为lambda 函数。例如,您可以找到每个数字的立方值并将其作为最终结果返回。
这是代码。
li = [4, 8, 3, 2, 9]
mp = map(lambda x: x ** 3, li)
print(list(mp))
输出:
[64、512、27、8、729]
可以使用类和lambda函数将任何常见的单表达式逻辑应用于每个元素。map()
reduce函数
该reduce()函数是模块的一部分functools,用于从值集合中生成最终的单个值。最终值是使用函数内部传递的函数确定的reduce()。
例如,对于一个值列表,您以累积应用乘法运算,最终得到所有值相乘的结果。在这里,可以使用lambda来代替直接函数。
from functools import reduce
li = [5, 7, 3, 4, 6]
re = reduce(lambda x, y: x * y, li)
print(re)
在reduce()函数中,始终使用两个参数。一个用于第一个值,另一个用于第二个值。这里5和7相乘。现在,结果35x再次传递给参数,第三个值3传递给参数y。
这种情况会一直发生,直到列表中没有元素为止,并且最终结果存储在变量 re中。
输出:
2520
这就是我们在reduce()函数中使用 lambda 的方式。
sorted函数
内置sorted()函数与方法类似sort(),但是,它对所有集合类型都是通用的,而不仅仅是列表。它们用于对值集合进行排序。
此函数还有一个可选key参数,您可以在其中使用 lambda 函数来更改该列表元素的排序方式。
下面是一个示例,其中列表中的数字根据每个数字的反转进行排序。
li = [59, 38, 81, 66, 43]
so = 排序(li, key=lambda x: str(x)[::-1])
print(so)
输出将是,
[81、43、66、38、59]
这就是该sorted()函数与lambda一起使用的方式,以根据自定义条件对值进行排序。
猜你喜欢
- 2024-12-11 Python教程(16)——lambda函数介绍
- 2024-12-11 Python 中的 Lambda 函数
- 2024-12-11 Python 中的 lambda 函数:简洁与强大的编程利器
- 2024-12-11 一文掌握 Python 函数式编程
- 2024-12-11 wps/excel函数技巧:reduce+groupby函数实现describe统计功能
- 2024-12-11 Python中的reduce?方法以函数式编程的方式生成斐波那契数列
- 2024-12-11 python的reduce函数
- 2024-12-11 【Python】3分钟掌握 reduce函数
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)