
正文
python---map,filter,reduce
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
map
遍历序列,对序列中每个元素进行操作,最终获取新的序列。
li = [11, 22, 33]
new_list = map(lambda a: a + 100, li)
#new_list = map(lambda a: a + 100, [11, 22, 33])
print(list(new_list))
每个元素增加100
def abc(a, b, c):
return a*10000 + b*100 + c list1 = [11,22,33]
list2 = [44,55,66]
list3 = [77,88,99] print(list(map(abc,list1,list2,list3))) #结果
[114477, 225588, 336699]
二维数组
li1 = [11, 22, 33]
sl1 = [1, 2, 3]
new_list = map(lambda a, b: a + b, li1, sl1)
print(list(new_list)) #结果
[12, 24, 36]
再来一个~
>>> list1 = [11,22,33]
>>> map(None,list1)
[11, 22, 33]
>>> list1 = [11,22,33]
>>> list2 = [44,55,66]
>>> list3 = [77,88,99]
>>> map(None,list1,list2,list3)
[(11, 44, 77), (22, 55, 88), (33, 66, 99)]
若第一个参数为None
filter
对于序列中的元素进行筛选,最终获取符合条件的序列。
li = [11, 22, 33,34,534,2,12] new_list = filter(lambda arg: arg > 22, li)
print(list(new_list))
#filter第一个参数为空,将获取原来序列 #结果
[11, 22, 33, 34, 534, 2, 12]
获取列表中大于12的所有元素集合
reduce
对于序列内所有元素进行累计操作
from functools import reduce
li = [11, 22, 33]
result = reduce(lambda arg1, arg2: arg1 + arg2, li) # reduce的第一个参数,函数必须要有两个参数
# reduce的第二个参数,要循环的序列
# reduce的第三个参数,初始值 print(result) #结果
66
获取序列所有元素的和






