我收集了一个列表列表,每个列表代表一天中的数据。我需要找到这些总和以计算每天的总交易量。我似乎只能将每个列表加在一起,而不是单个列表数据。
提供所有列表的总数,而不是每个单独列表的总数。
for ele in range(0, len(y_pred)):
total = total + y_pred[ele]
print (total)
预期有18个输出,每个列出总和,而不是一个包含所有总和的输出。
答案 0 :(得分:2)
使用map
和sum
:
sums = list(map(sum, list_of_lists))
其中list_of_lists
是包含其他列表的列表。现在,sums
是一个包含每个子列表之和的列表。要获取全部金额,请再次将sum
与新的sums
列表一起使用:
sum(sums)
答案 1 :(得分:2)
首先,您无需在Python中使用此模式:
for ele in range(0, len(y_pred)): # let's not use "ele" as a var name, btw. confusing
total = total + y_pred[ele]
因为您可以只写:
for element in y_pred:
total = total + element
无论如何,您可以使用map
作为另一个建议,但是最简单的方法是仅扩展现有模式。由于列表中有一个列表,因此有两个列表可以迭代:
for sub_list in mega_list:
for element in sub_list:
total += element
答案 2 :(得分:1)
只使用总和。
const fs = require('fs'),
sharp = require('sharp'),
tempWrite = require('temp-write');
module.exports = {
toCircle: (base64String, width) => new Promise((resolve, reject) => {
const imageBuffer = Buffer.from(base64String, "base64"),
tmpImage = tempWrite.sync('', 'tmp.webp'),
r = width / 2,
circleShape = Buffer.from(`<svg><circle cx="${r}" cy="${r}" r="${r}" /></svg>`);
sharp(imageBuffer)
.resize(width, width)
.composite([{
input: circleShape,
blend: 'dest-in'
}])
.webp()
.toFile(tmpImage, (err) => err ?
reject(err.message) :
resolve(fs.createReadStream(tmpImage))
);
})
};
答案 3 :(得分:1)
您可以在sum
循环中使用for
:
total = []
for i in list_of_lists:
total.append(sum(i))
print(total)