Python——高阶函数——map filter zip

时间:2022-11-24 19:06:44

一、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)]