2023.12.23 python高级语法_lambda表达式_filter函数_map和reduce函数
2023-12-23 20:56:07
1.lambda表达式
# 函数常规使用
def func_1(num_1, num_2):
return num_1 + num_2
result = func_1(1, 2)
print(result)
# lambda写法一
lambda_func = lambda num_1, num_2: num_1 + num_2
result = lambda_func(1, 2)
print(result)
# 乘法
# 函数名 = lambda 参数1,参数2 : 参数1 公式 参数2
lambda_mul = lambda num_one, num_two: num_one * num_two
mul = lambda_mul(5,6)
print(mul)
# 30
# lambda写法二 :匿名函数
result = (lambda num_1, num_2: num_1 + num_2)(1, 2)
print(result)
# 3
mul2 = (lambda num__one,num__two:num__one*num__two)(5,6)
print(mul2)
# 30
# print('hello');print('world')
2.filter函数
my_list = [1, 2, 3, -4, -5]
# 传递进filter的函数参数,返回值类型是bool类型
def func_1(num):
return num > 0
result = filter(func_1, my_list)
print(list(result))
result = filter(lambda num: num > 0, my_list)
print(list(result))
# print(bool(0))
# print(bool(1))
# print(bool(-10))
my_list2 = [20, 30, 40, 50, 60]
def func_2(num):
return num < 50
result2 = filter(func_2, my_list2)
print(list(result2))
# [20, 30, 40]
# print后面不加上list,就会返回可迭代对象,看不懂
result3 = filter(lambda num1:num1>20,my_list2)
print(list(result3))
# [30, 40, 50, 60]
# 过滤列表中的奇数
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
def func_filter(i):
return i % 2 == 1
# odd_number 奇数
# even_number 偶数
odd_number = filter(func_filter, my_list)
new_list = list(odd_number)
print(new_list)
# [1, 3, 5, 7, 9]
3.map和reduce函数
"""map函数:处理数据!
通过自定义函数,对可迭代对象的每一个元素分别进行操作,返回新的可迭代对象
new_可迭代对象 = map(处理每一个元素的函数, 可迭代对象)
"""
"""reduce函数
通过自定义函数,先对第1、2元素进行操作,返回一个结果
再拿这个结果和第3个元素进行操作,直到得到最终的一个结果
结果 = reduce(处理函数, 可迭代对象) # 处理函数必须接收2个参数!
[英] reduce v. 使...缩小、减少
"""
from functools import reduce
# map函数
my_list = list(range(1,11,1))
print(my_list)
# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
result = map(lambda num:num*2,my_list)
print(list(result))
# [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
# reduce函数
from functools import reduce
result_sum = reduce(lambda num1,num2: num1+num2,my_list)
print(result_sum)
# 55
sum = 0
for i in my_list:
sum += i
print(sum)
# 55
文章来源:https://blog.csdn.net/m0_49956154/article/details/135172980
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!