map
函数签名:
class map(object)
| map(func, *iterables) --> map object
|
| Make an iterator that computes the function using arguments from
| each of the iterables. Stops when the shortest iterable is exhausted.
函数使用
map是将函数func依次应用在序列iterables上.
如: map(lambda x: x**2, [1, 2, 3, ,4 ,5 ,6, 7 ,8, 9])
filter
函数签名
class filter(object)
| filter(function or None, iterable) --> filter object
|
| Return an iterator yielding those items of iterable for which function(item)
| is true. If function is None, return the items that are true.
函数使用
对iterable使用function, 结果为True的留下.
如,过滤一个整数序列的正数.
>>> from random import randint
>>> lst = [randint(-10, 10) for _ in range(10)]
>>> lst
[4, -3, 0, -4, 6, 0, -2, -3, 0, 0]
>>> list(filter(lambda x: x > 0, lst))
[4, 6]
>>>
reduce
函数签名
和map和filter不同, reduce在functools.py里面
from functools import reduce
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.
函数使用
>>> from functools import reduce
>>> reduce(lambda x, y: x+y, [1, 2, 3])
6
>>> reduce(lambda x, y: x+y, [1, 2, 3], 10)
16
>>> reduce(lambda x, y: x+y, [], 10)
10