lambda,filter,map,reduce

时间:2021-08-17 08:25:02
# lambda,filter,map,reduce
from functools import reduce print('返回一个迭代器')
print((x) for x in range(5))
print('迭代器转换为tuple')
print(tuple((x) for x in range(5)))
print('.......')
print('匿名函数lambda传参方式一')
print((lambda x, y: x+y)(1, 2))
print((lambda x: x+1)(1))
print('匿名函数传参方式二,返回一个迭代器')
print((lambda x: x+1)(x) for x in range(5))
print('迭代器转换为list')
print(list((lambda x: x+1)(x) for x in range(5)))
print('.......')
print('filter:返回x-1 为 True 的 x的值, bool(-1) == True,bool(0) == False,bool(None) == False')
print(list(filter(lambda x: x-1, range(5))))
print('.......')
print('map:返回所有的x-1 的值')
print(list(map(lambda x: x-1, ((x)for x in range(5)))))
print('reduce:先把sequence中第一个值和第二个值当参数传给function,再把function的返回值和第三个值当参数传给fuction,最终返回一个结果值')
print(reduce(lambda x, y: x+y, range(5)))

返回结果:

返回一个迭代器
<generator object <genexpr> at 0x103333728>
迭代器转换为tuple
(0, 1, 2, 3, 4)
.......
匿名函数lambda传参方式一
3
2
匿名函数传参方式二,返回一个迭代器
<generator object <genexpr> at 0x1033337d8>
迭代器转换为list
[1, 2, 3, 4, 5]
.......
filter:返回x-1 为 True 的 x的值, bool(-1) == True,bool(0) == False,bool(None) == False
[0, 2, 3, 4]
.......
map:返回所有的x-1 的值
[-1, 0, 1, 2, 3]
reduce:先把sequence中第一个值和第二个值当参数传给function,再把function的返回值和第三个值当参数传给fuction,最终返回一个结果值
10