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))
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)]
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]
reduce
对于序列内所有元素进行累计操作
from functools import reduce li = [11, 22, 33] result = reduce(lambda arg1, arg2: arg1 + arg2, li) # reduce的第一个参数,函数必须要有两个参数 # reduce的第二个参数,要循环的序列 # reduce的第三个参数,初始值 print(result) #结果 66