7个Python有趣的lambda应用

1. 排序sort()

2. 寻找最大值max()

3. 查找最小值min()

4. filter()

用于根据函数从值集合中过滤值。
它返回一个过滤器对象,需要在打印值之前将其转换为所需的数据类型。

5. map()

用于将函数应用于值集合中的每个元素。 示例包括将大写字符串转换为小写,以及将字符串值转换为整数。还有其他有用的应用程序。它返回一个映射对象,然后可以将其转换为任何所需的集合数据类型。

6. reduce()

是 functools 模块的一部分,用于从值集合中生成最终的单个值。

7. Sorted()

内置函数与 sort() 方法类似,它对于所有集合类型都是通用的,而不仅仅是列表。用于对值集合进行排序,也可以指定reverse反转排序

源码

# 7个Python有趣的lambda应用

# 1. 排序sort()

li = [23, 56, 89, 32, 12]
li.sort(key=lambda x: str(x)[1])  # 根据第2位对其进行排序
print(li)

li.sort(key=lambda x: str(x))  # 根据整体对其进行排序
print(li)

# 2. 寻找最大值max()

li = [1, 0, -1, 2, -3]
print(max(li, key=lambda x: abs(x)))  # 查找绝对值最大的值

# 3. 查找最小值min()

li = [1, 2, 3, 4, 5]
print(min(li, key=lambda x: -x))  # 查找负值最小的值

# 4. filter() 类用于根据给定的函数从值集合中过滤值。它返回一个过滤器对象,需要在打印值之前将其转换为所需的数据类型。
# 可以使用 lambda 函数来过滤值,而不是提供预定义的函数。 对于给定函数返回 True 的所有元素都将被保留。任何返回 False 的内容都会被忽略。

li = ['bat', 'tip', 'cat', 'pet']
fr = filter(lambda x: x[1] == 'a', li)
print(list(fr))

# 5. map() 类用于将函数应用于值集合中的每个元素。 示例包括将大写字符串转换为小写,以及将字符串值转换为整数。还有其他有用的应用程序。
# 它返回一个映射对象,然后可以将其转换为任何所需的集合数据类型。

li = [4, 8, 3, 2, 9]
mp = map(lambda x: x ** 3, li)
print(list(mp))

# 6. reduce() 函数是 functools 模块的一部分,用于从值集合中生成最终的单个值。最终值是使用在reduce() 函数内部传递的函数确定的。
# eg:对于一个值列表,您可以累积应用乘法运算,最终得到所有值相乘的结果。

from functools import reduce

li = [5, 7, 3, 4, 6]
re = reduce(lambda x, y: x * y, li)
print(re)

# 7. Sorted() 内置函数与 sort() 方法类似,但是,它对于所有集合类型都是通用的,而不仅仅是列表。它们用于对值集合进行排序。
# 此函数还有一个可选的 key 参数,您可以在其中使用 lambda 函数来更改该列表元素的排序方式。

li = [59, 38, 81, 66, 43]
so = sorted(li, key=lambda x: str(x)[::-1])
print(so)

sos = sorted(li, key=lambda x: str(x), reverse=True)
print(sos)

猜你喜欢

转载自blog.csdn.net/qq_40985985/article/details/132169411