1.li=[1,2,3,4,5]
def add(x):
return x+1
def test(func,array):
res=[]
for i in array:
num=func(i)
res.append(num)
return res
print(test(add,li))
print(test(lambda x:x**2,li)) //输出结果为[2, 3, 4, 5, 6]
[1, 4, 9, 16, 25]
res=map(add,li)
for i in res:
print(i) //使用map()内置函数
print(list(map(add,li)))
2.li=['yue_xiao_b','yue_jing_b','yue_lin','problem']
def test(array): res=[] for i in array: if not i.startswith('yue'): res.append(i) return res print(test(li)) //输出结果为['problem'] print(list(filter(lambda n:n.endswith('b'),li))) //输出结果为['yue_xiao_b', 'yue_jing_b'],filter()内置函数3.from functools import reduce li=[1,3,5,10] def test(func,array,init=None): if init is None: res=li.pop(0) else: res=init for i in array: res=func(res,i) return res print(test(lambda x,y:x*y,li,10)) //输出结果为1500 print(reduce(lambda x,y:x*y,li,10)) //reduce()内置函数4.小结: map()处理得到的结果是一个'列表','列表'中每个元素位置不变,只是在原来的基础上进行了加工 filter()遍历序列中的每个元素,判断其布尔值,如果为True则留下来 reduce()处理序列,并对其进行相应的合并操作
来源:https://www.cnblogs.com/cxydnxs/p/12259477.html