空气炸锅做糕点的网站,北京网站建设的关键词,建站网站和维护需要会什么,门户网站怎么做seomap()map()函数接收两个参数#xff0c;一个是函数#xff0c;一个是Iterable#xff0c;map将传入的函数依次作用到序列的每个元素#xff0c;并把结果作为新的Iterator返回。使用map实现一个f(x) x * x的功能def f(x):return x * xm map(f, list(range(1, 10)))# [1, 4…map()map()函数接收两个参数一个是函数一个是Iterablemap将传入的函数依次作用到序列的每个元素并把结果作为新的Iterator返回。使用map实现一个f(x) x * x的功能def f(x):return x * xm map(f, list(range(1, 10)))# [1, 4, 9, 16, 25, 36, 49, 64, 81]print(list(m))另外可以使用lambda函数简化# [1, 4, 9, 16, 25, 36, 49, 64, 81]print(list(map(lambda x: x * x, list(range(1, 10)))))Console OutputNote可以看出lambda x: x * x实际上就是def f(x):return x * x把list中的所有数字转为字符串# [1, 2, 3, 4, 5, 6, 7, 8, 9]print(list(map(str, list(range(1, 10)))))Console Outputreduce()reduce把一个函数作用在一个序列[x1, x2, x3, ...]上这个函数必须接收两个参数reduce把结果继续和序列的下一个元素做累积计算其效果就是reduce(f, [x1, x2, x3, x4]) f(f(f(x1, x2), x3), x4)使用reduce对一个序列求和from functools import reducedef add(x, y):return x y# 55print(reduce(add, list(range(1, 11))))# 55print(reduce(lambda x, y: x y, list(range(1, 11))))Console Output把序列[1, 2, 3, 4, 5, 6, 7, 8, 9]变换成整数123456789from functools import reducedef fn(x, y):return x * 10 y# 123456789print(reduce(fn, list(range(1, 10))))# 123456789print(reduce(lambda x, y: x * 10 y, list(range(1, 10))))Console Outputmap()和reduce()整合把str转换位intfrom functools import reducedef char2num(s):return {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9}[s]# 13579 13579print(reduce(fn, map(char2num, 13579)))# 13579 13579print(reduce(lambda x, y: x * 10 y, map(char2num, 13579)))def str2int(s):def fn(x, y):return x * 10 ydef char2num(s):return {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9}[s]return reduce(fn, map(char2num, s))print(str2int(13579))Console Output参考资料