1、map()函数
map(function, iterable, ...)
参数
function -- 函数
iterable -- 一个或多个序列
返回值
Python 2.x 返回列表。
Python 3.x 返回迭代器。
def square(x): # 计算平方数
return x ** 2
y = map(square, [1, 2, 3, 4, 5]) # 计算列表各个元素的平方
print(y)
# 转化为列表输出
print(list(y))

# 和上述例子结果相同,但是结合lambda表达式,简化函数
y = map(lambda x: x ** 2, [1, 2, 3, 4, 5]) # 使用 lambda 匿名函数
print(y)
print(list(y))

# 提供了两个列表,对相同位置的列表数据进行相加
n = map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
print(list(n))
# 三个也一样
m = map(lambda x, y, z: x + y+z, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10], [2, 4, 6, 8, 10])
print(list(m))

2、filter()函数
语法
filter(function, iterable)
注:和map使用类似第一个是筛选条件的方法,第二个是可迭代对象
参数
function -- 判断函数。
iterable -- 可迭代对象。
例子:
过滤出列表中的所有奇数:
def is_odd(n):
return n % 2 == 1
tmplist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
newlist = list(tmplist)
print(newlist)

改成lambda表达式:
tmplist = filter(lambda x: x % 2 == 1, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
newlist = list(tmplist)
print(newlist)

3、reduce()函数
reduce() 函数语法:
reduce(function, iterable[, initializer])
参数
function -- 函数,有两个参数
iterable -- 可迭代对象
initializer -- 可选,初始参数
返回值
返回函数计算结果。
例子:
from functools import reduce
def add(x, y): # 两数相加
return x + y
z = reduce(add, [1, 2, 3, 4, 5]) # 计算列表和:1+2+3+4+5
print(z)
# 利用lambda表达式的话跟上面的map例子一样变换一下即可
利用初始值的例子:其中6就是初始值
from functools import reduce
lst = [1, 2, 3, 4]
print(reduce(lambda x, y: x+y, lst, 6))
输出:16
计算过程:
6+1=7
7+2=9
9+3=12
12+4=16
4、zip()函数
zip 语法:
zip([iterable, ...])
参数说明:
iterabl -- 一个或多个迭代器;
返回值:
返回一个对象。
# 例子:其中zip里面的a,b,c只是运算迭代对象,多少个都可以
a = [1, 2, 3]
b = [4, 5, 6]
c = [4, 5, 6, 7, 8]
zipped = zip(a, b, c)
print(zipped)
print(list(zipped))
