1、map()函数
map(参数1, 参数2 ),参数1是一个函数,参数2是一个是Iterable可迭代对象,返回一个Iterator对象,因为是惰性序列,所有需要通过list()函数让它把整个序列都计算出来并返回一个list。
举例用法:
>>> def f(x):
... return x * x
...
>>> a = map(f, [1, 2, 3, 4])
>>> list(a)
[1, 4, 9, 16]
>>>
map()可以计算任意复杂的函数,如:
#把list的数字转成字符串
>>> a = map(str, [1, 2, 3, 4])
>>> list(a)
['1', '2', '3', '4']
>>>
2、reduce()函数
举例用法:
求和,
>>> def add(x, y):
... return x + y
...
>>> reduce(add, [1, 2, 3, 4])
10
>>> reduce(add, [1, 2, 3, 4], 2)
12
上面的代码,其实就相当于 1 + 2 + 3 + 4 = 10,如果存在初始值参数就加上初始值为12
复杂一点的用法
>>> reduce(lambda x, y: x * 10 + y, [1, 2, 3, 4])
1234
lambda x, y: x * 10 + y 相当于下面的函数
>>> def list2int(x, y):
... return x * 10 + y
...
>>>
3、map()和reduce()搭配使用
将传入的字符串数字转化为整数的函数
>>> d = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}
>>> def char2num(s):
... return d[s]
...
>>> def str2int(s):
... return reduce(lambda x, y: x * 10 + y, map(char2num, s))
...
>>> str2int(['1', '2', '3', '4'])
1234
>>>