map函数
map(func, Iterable)
接收一个func函数和一个序列Iterable,将Iterable的每个元素经过func函数处理后,返回一个新的Iterable。
类似列表推导式:[func(item) for item in iterable]
#!/usr/bin/env python
# encoding: utf-8
def sqr(item):
return item * item
if __name__ == '__main__':
objList = [1, 2, 3]
newList = map(sqr, objList)
print(newList)
print(list(newList))
print([sqr(item) for item in objList])
输出结果:
<map object at 0x006325D0>
[1, 4, 9]
[1, 4, 9]
reduce函数
reduce(function, sequence, initial=None)
接收一个函数function和一个序列sequence,该函数需要接收两个参数x和y;
若initial的值为None,则function首次调用从sequence取两个元素分别赋值给参数x和y;
若initial的值不为None,则function首次调用参数x=initial,另外从sequence取一个元素赋值给参数y;
函数function上一次调用的返回结果作为x参数的值,并从sequence剩余元素中选取一个元素作为参数y的值传递给函数function,直到sequence元素选取结束;
返回结果为最后一次function调用的返回值。
#!/usr/bin/env python
# encoding: utf-8
from functools import reduce
def add(x, y):
return x + y
if __name__ == '__main__':
objList = [1, 2, 3, 4]
print(reduce(add, objList))
print(reduce(add, objList, 20))
输出结果为:
10
30
filter
filter(func, Iterable)
接收一个函数func和一个序列Iterable
函数func用于过滤掉Iterable中不符合条件的元素,返回一个由使得函数func返回值为True的元素组成的新的可迭代对象。
#!/usr/bin/env python
# encoding: utf-8
def func(item):
return item % 2 == 0
if __name__ == '__main__':
objList = [1, 2, 3, 4, 5]
print(filter(func, objList))
print(list(filter(func, objList)))
输出结果为:
<filter object at 0x01E52270>
[2, 4]