Python——高阶函数——map filter zip
一、map函数
1、作用:它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。
2、实例
def f(x): return x*x a = list( map (f, [1, 2, 3, 4, 5, 6, 7, 8, 9])) print (a)
#[1, 4, 9, 16, 25, 36, 49, 64, 81]
二、filter函数
1、过滤序列,过滤掉不符合条件的元素。该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。
2、实例
#过滤出1~100中平方根是整数的数 import math def is_sqr(x): return math.sqrt(x) % 1 == 0 tmplist = filter(is_sqr, range(1, 101)) newlist = list(tmplist) print(newlist) #[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
三、zip函数 (合并序列)
1、zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表
2、实例
x = [1, 2, 3] y = [4, 5, 6] z = [7, 8, 9] xyz = list(zip(x, y, z)) print (xyz) #[(1, 4, 7), (2, 5, 8), (3, 6, 9)] x = [1, 2, 3] y = [4, 5, 6, 7] xy =list(zip(x,y)) print (xy) #[(1, 4), (2, 5), (3, 6)] x = [1, 2, 3] x = list(zip(x)) print (x) #[(1,), (2,), (3,)] x = [1, 2, 3] y = [4, 5, 6] z = [7, 8, 9] xyz = zip(x, y, z) u = list(zip(*xyz)) print (u) #[(1, 2, 3), (4, 5, 6), (7, 8, 9)]