变量可指向函数,并通过变量调用。函数也可作为参数传入另一个函数
def sums(a,b,f): return f(a)+f(b) print(sums(1,-2,abs))
map:可认为是一种映射,把key映射为value
def f(x): return x*x a=map(f,list(range(5))) #返回Iterator print(list(a)) #[0, 1, 4, 9, 16]
利用map对每个单词首字母大写:
def normalize(name): return name[0].upper()+name[1:].lower() L1 = ['adam', 'LISA', 'barT'] L2 = list(map(normalize, L1))
reduce:从list中取出两个元素反复计算,f(x1,x2)使用效果:reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
from functools import reduce def f(x,y): return 10*x+y a=reduce(f,[1,2,3,4]) print(a)
利用reduce实现的字符转数字如下:
from functools import reduce def char2num(c): str={'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9} return str[c] #返回字符对应的数字 def f(x, y): return 10*x+y num=reduce(f, map(char2num,'12345')) print(num)filter:根据筛选函数对list过滤