运行环境
Windows 10
Python 3.8.2
PyFunctional 1.3.0
示例
- 原料
lst = [-2, -1, 0, 1, 2]
筛正数(filter)
# 方式一
list(filter(lambda x: x>0, lst))
# 方式二
[x for x in lst if x>0]
output
[1, 2]
翻倍(map)
# 方式一
list(map(lambda x: x*2, lst))
# 方式二
[x*2 for x in lst]
output
[-4, -2, 0, 2, 4]
求和(reduce)
# 方式一
from functools import reduce
reduce(lambda x,y: x+y, lst)
# 方式二
total = 0
for x in lst:
total += x
total
output
0
筛正数 + 翻倍 + 求和
lst = [-2, -1, 0, 1, 2]
from functools import reduce
# 方式一
reduce(lambda x,y: x+y,map(lambda x: x*2, filter(lambda x: x>0, lst)))
# 方式二
total = 0
for x in [x*2 for x in [x for x in lst if x>0]]:
total += x
total
# 方式三(借助第三方库 PyFunctional)
from functional import seq
seq(lst) \
.filter(lambda x: x>0) \
.map(lambda x: x*2) \
.reduce(lambda x, y: x + y)
output
6
本文出自 qbit snap