我是python编程语言的新手,目前我无法在列表中编写产品的python函数。
鉴于aList = [1,2,3,4,5],我们需要编写一个python函数,“product”来返回列表中项目的乘积。例如,product(aList [1:3])将返回24.
我做过研究,但到目前为止我还没弄明白。这是我想出来的,但这是错误的。
def product(l):
p = 1
for i in range(0, len(l)):
p = p*i
return p
print(product(aList[1:3])
关于我如何能够获得所需输出的任何想法?另外,由于我对python比较陌生,所以不建议使用numpy等内置函数。
答案 0 :(得分:2)
如果您希望将值乘以一起,则无法使用索引。只是直接遍历列表
def product(l):
p = 1
for i in l:
p = p*i
return p
print(product(aList[1:3]))
如果由于某种原因,你需要遍历索引,只需确保使用给定索引处的列表项而不是索引本身(特别是因为你将从0开始并最终得到0)如果你去索引)
def product(l):
p = 1
for i in range(0, len(l)):
p = p*l[i]
return p
print(product(aList[1:3]))
(还要注意你在打印中缺少一个paren)
答案 1 :(得分:2)
>>> import functools
>>> import operator
>>> functools.reduce(operator.mul, [1, 2, 3, 4, 5])
120
在python 2中,您可以使用reduce
而不包括functools
(它是内置的)。
您也可以将operator.mul
替换为lambda x,y: x*y
。
答案 2 :(得分:1)
如果您使用的是Python 2
,可以使用pythonreduce
函数来实现此目的
aList = [1,2,3,4,5],
print reduce(lambda x,y:x*y, aList)
输出
120
答案 3 :(得分:0)
您可以循环遍历列表中的每个元素以获取产品。像这样:
def get_product_of_list(some_list):
product = 1
for number in some_list:
product = product * number
return product
希望这有帮助!