我正在尝试创建一个基本的Python脚本,它允许我将列表中的每个数字相乘并打印总数。
例如,如果我的列表包含2,5,1,我希望脚本乘以2*5*1,这将给出10。由于某种原因,我无法产生这个结果,我能够通过将数字相加(在下面可以看到)来产生它,但是当我将第8行改为乘时,它不会给我预期的结果(在上面的例子中,它给出了30而不是预期的10)。
不正确的乘法列表总数:
# input list
numbers = [2, 5, 1]
# output list
total = 0
# for each number in the list:
for number in numbers:
# update total
total = total + number * number
# print the total
print(total)脚本,它成功地将数字添加到列表中:
# input list
numbers = [2, 5, 1]
# output list
total = 0
# for each number in the list:
for number in numbers:
# update total
total = total + number
# print total
print(total)发布于 2019-01-04 11:30:50
要将列表中的数字乘以并打印总计,您需要将总数设置为1,并且需要使用*=运算符。这简单的意思是“左手边表达式=本身*右手边表达式”。
# input list
numbers = [2, 5, 1]
# output list
total = 1
# for each number in the list:
for number in numbers:
# update total
total *= number
# print total
print(total)打印10 (2 *5*1= 10)
发布于 2019-01-04 11:36:02
这样做的惯用方法是reduce --字面意思是逐个元素“减少”您的序列元素,并以单个值结束。如果需要乘法,可以使用operator.mul编程方法进行乘法:
from functools import reduce
from operator import mul
total = reduce(mul, [2, 5, 1])https://stackoverflow.com/questions/54038127
复制相似问题