我这样做的目的是使用嵌套循环分别生成每个子列表的和
这是我的列表sales_data
sales_data = [[12, 17, 22], [2, 10, 3], [5, 12, 13]]
子列表可以用任何变量表示,但出于本练习的目的,我们将其称为scoops_sold,我将其设置为0
scoops_sold = 0
到目前为止,我能够像下面这样运行嵌套循环
sales_data = [[12, 17, 22], [2, 10, 3], [5, 12, 13]]
scoops_sold = 0
for location in sales_data:
for element in location:
scoops_sold += element
print(scoops_sold)
结果是96
我实际上想要完成的是返回每个子列表的和,但我不确定我是否能够做到这一点。我想过使用切片,但这并不有效
您可以使用sum()
:
print(list(map(sum, sales_data)))
如果你坚持循环:
sums = []
for location in sales_data:
sold = 0
for element in location:
sold += element
sums.append(sold)
print(sums)
[sum(sub_list) for sub_list in sales_data]
# [51, 15, 30]
然而,这个问题有点令人困惑,因为您将scoops_sold
设置为0,而int
,当您描述的结果是int
的list
时。
如果您想拥有所有子集的sum
,您可能希望使用list
来存储每个子集的总和,并且通过使用built-in
python函数sum
,您只需要使用一个循环:
scoops_sold = []
for sale_data in sales_data:
salscoops_solds_sum.append(sum(sale_data))
使用列表推导式可以在一行中获得相同的结果:
scoops_sold = [sum(sale_data) for sale_data in sales_data]
sales_data = [[12, 17, 22], [2, 10, 3], [5, 12, 13]]
scoops_sold = 0
for location in sales_data:
print(location)
for element in location:
scoops_sold += element
print(scoops_sold)