#map函数--处理可迭代序列的每一个元素,得到一个可迭代序列,不改变原序列的长度和结构
num_l = [1,2,3,4,5,6,7,8,9]
result = map(lambda x:x**2,num_l)#(函数,可迭代对象)
print(list(result))
msg = 'abcdefg'
result = map(lambda x:x.upper(),msg)
print(list(result))
#filter函数--遍历判断可迭代对象的每一个元素,得到布尔值,如果是True则留下来
name_l = ['abc_sb','def_sb','ghi','jkl_sb']
name_2 = ['sb_abc','sb_def','ghi','sb_jkl']
result=filter(lambda n:n.endswith('sb'),name_l)
print(list(result))
result=filter(lambda n:n.startswith('sb'),name_2)
print(list(result))
#reduce函数--合并序列
from functools import reduce
num_l = [1,2,3,4,5,6,7,8,9]
result=reduce(lambda x,y:x*y,num_l)
print(result)
result=reduce(lambda x,y:x+y,range(100))
print(result)
result=reduce(lambda x,y:x+y,range(1,101))
print(result)
result=reduce(lambda x,y:x+y,range(100),100)
print(result)