我正在尝试创建一个基本的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)
答案 0 :(得分:2)
做这些事情的惯用方式是reduce
-字面意思是逐个元素“减少”序列元素并以单个值结束。如果需要乘法,可以使用operator.mul
(一种编程方式)进行乘法:
from functools import reduce
from operator import mul
total = reduce(mul, [2, 5, 1])
答案 1 :(得分:1)
要将列表中的数字相乘并打印总计,您需要将总计设置为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)