自己写的笔记哈
(1):map()
指把一个可调用对象func依次映射到序列的每个元素上,并返回一个可迭代的map对象,但是map对象中的每个元素只能使用一个。
可调用对象func可以是系统自带函数,用户自定义函数,lambda。
data = map(str, range(5))
data2 = map(lambda x : str(x), range(5))
print(data)
print(list(data))
print(list(data2))
结果为:
<map object at 0x000001E37CBFE7C8>
['0', '1', '2', '3', '4']
['0', '1', '2', '3', '4']
第二个例子:
A = map(len, ['abc', '1234'])
B = map(lambda y : len(y), ['abc', '1234'])
print(list(A))
print(list(B))
结果为:
[3, 4]
[3, 4]
(2):reduce()
指的是将一个接受2个参数以迭代的方式从左到右依次作用到一个序列或可迭代对象的所有元素上,reduce()函数需要从标准库中导入后才能使用。
from functools import reduce #导入函数
from operator import add
A = range(1, 6)
print(reduce(add, A))
B = reduce(lambda x, y : x+y, A)
print(B)
结果为:
15
15
(3)filter()
用于使用指定函数描述的规则对序列中的元素进行过滤,返回一个filter对象。
A = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
def f1(x):
return x % 2 == 1 #奇数
lst1 = filter(f1, A)
print(list(lst1))
结果:
[1, 3, 5, 7, 9]
还可以写为lambda表达式
A = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
lst2 = filter(lambda x : x % 2 == 1, A)
print(list(lst2))
结果:
[1, 3, 5, 7, 9]