2024-04-29 05:54:54 发布
网友
我有多个列表,比如:
t1 = ['ABC', 100, 20] t2 = ['XXX', 200, 35] t3 = ['ABC', 500, 90] t4 = ['XXX', 100, 15]
仅当第一个元素相等时,我想对所有列表中的第二个和第三个元素求和,结果是:
list = [['ABC', 600, 110], ['XXX', 300, 50]]
尝试使用map() function,但无法完成
map() function
有人能帮忙吗
您可以使用^{} arrays的中间^{}来创建某种服装计数器:
from collections import defaultdict import numpy as np lists = [['ABC', 100, 20], ['XXX', 200, 35], ['ABC', 500, 90], ['XXX', 100, 15]] res = defaultdict(lambda: np.array([0, 0])) for l in lists: res[l[0]] += l[1:] print(res) print([[key] + list(vals) for key, vals in res.items()])
给出:
{'ABC': array([600, 110]), 'XXX': array([300, 50])} [['ABC', 600, 110], ['XXX', 300, 50]]
Try(不需要外部库)
from collections import defaultdict t1 = ['ABC', 100, 20] t2 = ['XXX', 200, 35] t3 = ['ABC', 500, 90] t4 = ['XXX', 100, 15] t_lst = [t1,t2,t3,t4] d = defaultdict(lambda: [0, 0]) for t in t_lst: d[t[0]][0] += t[1] d[t[0]][1] += t[2] final = [[k,v[0],v[1]] for k,v in d.items()] print(final)
输出
[['ABC', 600, 110], ['XXX', 300, 50]]
您可以使用^{} arrays 的中间^{} 来创建某种服装计数器:
给出:
Try(不需要外部库)
输出
相关问题 更多 >
编程相关推荐