Python3 函数式编程

1.三元表达式

…if…else…

第一个参数是表达式为True时的结果,第二个是一个布尔表达判断式,第三个是表达式为False的结果

a=1
b=2
x=a if a>b else b
print(x)

输出结果:

image

2.lambda

Python3 函数式编程_第1张图片
image

输出结果:

image

3.map

map(函数,可迭代)

a=[1,2,3,1,2,3]
b=[3,2,1,3,2,1]

print(list(map(lambda x,y:x+y,a,b)))

输出结果:

image

4.reduce

Python3中,reduce已经不在全局命名空间,已经被移动到了functools模块里

from functools import reduce
a=[1,2,3,4,5]

print(reduce(lambda x,y:x+y,a))

输出结果:

image

从列表中拿出两个元素进行相加,然后结果作为下一次的输入

5.filter

a=[-1,0,1,-2,3]

print(list(filter(lambda x:True if x>0 else False,a)))

输出结果:

image

用一个三元表达式,过滤掉列表a中小于等于零的元素

6.zip

a=['a','b','c','d']
b=['!','*','/']

for x,y in zip(a,b):
    print(x,y)

输出结果:

image

zip()在每一个列表里各拿出一个对应元素进行匹配,并且会舍弃不对应的元素

还可以在zip()的参数前面加一个’*’,在每一个元组中提出一列

a=[(1,2),(3,4),(5,6)]
print(list(zip(*a)))

输出结果:

image

这样就可以实现矩阵的转置

你可能感兴趣的:(Python3 函数式编程)