python:如何将列表中的所有项相乘

2024-08-14 22:16:34
推荐回答(1个)
回答1:

# -*- coding:utf-8 -*-
#py3
'''
用高级函唤改裤数reduce()
'''
from functools import reduce
lis=[1,2,3,4,5]
r=reduce(lambda x,y:x*y,lis)#对序列lis中元素逐项相乘lambda用法请自行度娘
print(r)

reduce把一个函数作用在一个序列[x1, x2, x3, ...]上,这个函数必须接收两个参数,reduce把结果继续和序和简列的下一个元素做累积计算,其效果就歼扮是:

reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)

比方说对一个序列求和,就可以用reduce实现,比如:

from functools import reduce
def add(x,y):
    return x+y
reduce(add,[1,2,3])
#结果是6