Python 列表中元素的乘积函数

Python 列表中元素的乘积函数,python,Python,我是python编程语言的新手,目前我在编写列表中产品的python函数时遇到了麻烦 给定aList=[1,2,3,4,5],我们需要编写一个python函数product来返回列表中项目的乘积。例如,productaList[1:3]将返回24 我做过研究,但到目前为止我还没有弄明白。这是我的想法,但它是错误的 def product(l): p = 1 for i in range(0, len(l)): p = p*i return p print

我是python编程语言的新手,目前我在编写列表中产品的python函数时遇到了麻烦

给定aList=[1,2,3,4,5],我们需要编写一个python函数product来返回列表中项目的乘积。例如,productaList[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等。

如果要将值相乘,则使用索引没有意义。直接迭代列表即可

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

还要注意的是,如果要将值相乘,打印时缺少一个参数,那么使用索引是没有意义的。直接迭代列表即可

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]))
还请注意,您的打印中缺少一个参数

用于:

在Python2中,您可以使用reduce而不包括functools,因为它是内置的

您还可以将operator.mul替换为lambda x,y:x*y。

使用:

在Python2中,您可以使用reduce而不包括functools,因为它是内置的

您还可以用lambda x,y:x*y替换operator.mul。

如果您使用的是python 2,则可以使用python函数来实现这一点

aList = [1,2,3,4,5],
print reduce(lambda x,y:x*y, aList)
输出

120
如果您使用的是python 2,那么可以使用python函数来实现这一点

aList = [1,2,3,4,5],
print reduce(lambda x,y:x*y, aList)
输出

120

您只需循环列表中的每个元素即可获得产品。像这样:

def get_product_of_list(some_list):
    product = 1

    for number in some_list:
        product = product * number

    return product

希望这有帮助

您只需循环列表中的每个元素即可获得产品。像这样:

def get_product_of_list(some_list):
    product = 1

    for number in some_list:
        product = product * number

    return product

希望这有帮助

要乘以索引,需要乘以列表的元素,而不是索引。请注意,列表[1:3]是[2,3],因此乘积是6。要乘以索引,需要乘以列表的元素,而不是索引。请注意,列表[1:3]是[2,3],所以乘积是6。记住要保留空格:p=p*i或更好:p*=ii在大多数情况下,你可能想用它来表示i,在enumeratel中输入v,以在迭代时获取索引和值。@brianpck认为最好保持代码不变,除了特定的问题,而不是去挑剔它们的格式。@brianpck间距是PEP-8强烈鼓励的,但在语法上不是必需的。alist[1:3]的乘积永远不会是24,因为alist[1:3]=[2,3]。enumerate不会改变这一点;它只是返回一个元组列表,其中包含一个索引和一个值。enumerateaList[1:3]=[1,2,2,3]。请记住保留空格:p=p*i或更好:p*=iI在大多数情况下,您可能希望在enumeratel中使用for i,v在迭代时获取索引和值。@brianpck认为最好保持代码不变,除了特定的问题,而不是挑剔其格式。@brianpck PEP强烈鼓励使用空格-8,但不是语法上必需的。alist[1:3]的乘积永远不会是24,因为alist[1:3]==[2,3]。enumerate不会改变这一点;它只返回一个由索引和值组成的元组列表。enumerateaList[1:3]=[1,2,2,3]。请注意,reduce不是OP似乎正在使用的Python3的内置版本。请注意,reduce不是OP似乎正在使用的Python3的内置版本。