您的位置:首页 > 编程语言 > Python开发

python map和reduce的用法

2010-06-21 23:29 609 查看
map(function, sequence[, sequence, ...]) -> list

Return a list of the results of applying the function to the items of
the argument sequence(s). If more than one sequence is given, the
function is called with an argument list consisting of the corresponding
item of each sequence, substituting None for missing values when not all
sequences have the same length. If the function is None, return a list of
the items of the sequence (or a list of tuples if more than one sequence).

reduce(...)
reduce(function, sequence[, initial]) -> value

Apply a function of two arguments cumulatively to the items of a sequence,
from left to right, so as to reduce the sequence to a single value.
For example, reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]) calculates
((((1+2)+3)+4)+5). If initial is present, it is placed before the items
of the sequence in the calculation, and serves as a default when the
sequence is empty.

>>> L1 = ['a', 'b', 'c']
>>> L2 = [1, 2, 3]
>>> zip(L1, L2)
[('a', 1), ('b', 2), ('c', 3)]
>>> map(L1, L2)
Traceback (most recent call last):
File "", line 1, in ?
TypeError: 'list' object is not callable
>>> map(None, L1, L2)
[('a', 1), ('b', 2), ('c', 3)]
>>> dict(zip(L1, L2))
{'a': 1, 'c': 3, 'b': 2}
>>> dict(map(None, L1, L2))
{'a': 1, 'c': 3, 'b': 2}

>>> L3 = []
>>> zip(L1, L3)
[]
>>> map(L1, L3)
[]
>>> map(None, L1, L3)
[('a', None), ('b', None), ('c', None)]
>>> dict(zip(L1, L3))
{}
>>> dict(map(None, L1, L3))
{'a': None, 'c': None, 'b': None}

>>> def fun(A, B):
...     if B == None: B = ''
...     return A, B
...
map(fun, L1, L2)
[('a', 1), ('b', 2), ('c', 3)
>>> map(fun, L1, L3)
[('a', ''), ('b', ''), ('c', '')]
>>> dict(map(fun, L1, L3))
{'a': '', 'c': '', 'b': ''}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: