Python3基础之(二十 九)zip lambda map

版权声明:本文为博主原创文章,转载请注明出处! https://blog.csdn.net/PoGeN1/article/details/84192838

一、zip

zip函数接受任意多个(包括0个和1个)序列作为参数,合并后返回一个tuple列表,请看示例:

a=[1,2,3]
b=[4,5,6]
ab=zip(a,b)
print(list(ab))#需要加list来可视化这个功能

输出:

[(1, 4), (2, 5), (3, 6)]

zip 中的运算

a=[1,2,3]
b=[4,5,6]
ab=zip(a,b)
for i,j in zip(a,b):
    print(i/2,j*2)

输出:

0.5 8
1.0 10
1.5 12

二、lambda

lambda定义一个简单的函数,实现简化代码的功能,类似于c/c++中的宏定义:#define SQR (x) x * x。看代码会更好理解。

fun = lambda x,y : x+y, 冒号前的x,y为自变量,冒号后x+y为具体运算。

func=lambda x,y:x+y
x=int(input('x='))
y=int(input('y='))
print(func(x,y))

输入x``y的值后输出x+y

x=2
y=4
6

三、map

map()Python内置的高阶函数,它接收一个函数f 和一个 list,并通过把函数 f 依次作用在list的每个元素上,得到一个新的 list并返回。,看下面的程序:

def mult(x):
    return x*x
print(list(map(mult,[1,2,3,4,5,6,7,8,9])))

输出结果:

[1, 4, 9, 16, 25, 36, 49, 64, 81]

注意:map()函数不改变原有的list,而是返回一个新的list

利用map()函数,可以把一个list 转换为另一个list,只需要传入转换函数。

扫描二维码关注公众号,回复: 4129152 查看本文章

由于list包含的元素可以是任何类型,因此,map()不仅仅可以处理只包含数值的 list,事实上它可以处理包含任意类型的 list,只要传入的函数f可以处理这种数据类型。

猜你喜欢

转载自blog.csdn.net/PoGeN1/article/details/84192838