2023.12.23 python高级语法_lambda表达式_filter函数_map和reduce函数

发布时间:2023年12月23日

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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。