将列表数字相乘并打印总计(汇总)

时间:2019-01-04 11:30:50

标签: python python-3.x

我正在尝试创建一个基本的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)

2 个答案:

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

相关问题