map函数:
def square(L): def f(x): return x * x return list(map(f,L)) print(square([1,2,3,4,5]))
输出:[1, 4, 9, 16, 25]
map()传入的第一个参数是f
,即函数对象本身。由于结果r
是一个Iterator
,Iterator
是惰性序列,因此通过list()
函数让它把整个序列都计算出来并返回一个list。
将列表中的str首字母大写:
from functools import reduce def strStandard(L): def standard(s): return s[0].upper() + s[1:].lower() return list(map(standard, L)) print(strStandard(['dfs','AddeaA','sdfsA'])) 输出:['Dfs','Addeaa','Sdfsa']
reduce函数:
reduce把一个函数作用在一个序列[x1, x2, x3, ...]
上,这个函数必须接收两个参数,reduce
把结果继续和序列的下一个元素做累积计算
from functools import reduce def accumulation(L): def add(x, y): return x * 10 + y return reduce(add, L)
将数字转化为str:
from functools import reduce def char2num(s): return {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}[s] def str2int(s): return reduce(lambda x, y: x * 10 + y, map(char2num, s))