列表中元素的产品功能

时间:2016-11-02 16:47:04

标签: python

我是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等内置函数。

4 个答案:

答案 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)

reduce使用operator.mul

>>> 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

,可以使用python reduce函数来实现此目的
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

希望这有帮助!