输入列表 = [[北京,海淀,2000],[北京,海淀,1000],[北京,丰台,2000],[武汉,汉阳,1000],,[武汉,汉阳,4000]]
输出列表= [[北京,海淀,3000],[北京,丰台,2000],[武汉,汉阳,5000]]
感谢!
a = [['北京','海淀', 2000],['北京','海淀',1000],['北京','丰台',2000],['武汉','汉阳',1000],['武汉','汉阳',4000]]
d = {}
for i in a:
if f'{i[0]}_{i[1]}' in d.keys():
d[f'{i[0]}_{i[1]}'] += i[2]
else:
d[f'{i[0]}_{i[1]}'] = i[2]
print(d)
r = []
for k, v in d.items():
r.append([k.split('_')[0], k.split('_')[1], v])
print(r)
你题目的解答代码如下:
li = [['北京','海淀', 2000],['北京','海淀',1000],['北京','丰台',2000],['武汉','汉阳',1000],['武汉','汉阳',4000]]
d = {}
for v in li:
t = tuple(v[:2])
if t in d:
d[t][2] += v[2]
else:
d[t] = v
li2 = list(d.values())
print(li2)
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!
遍历输入列表,以 前两个值为key 第三个值为value 存在map中。 key相同 value相加
inputlist=[["北京","海淀",2000],["北京","海淀",1000],["北京","丰台",2000],["武汉","汉阳",1000],["武汉","汉阳",4000]]
tempkey={}
outlist=[]
for i in inputlist:
if str(i[:2]) in tempkey:
tempkey[str(i[:2])][2]+=i[2]
else:
tempkey[str(i[:2])]=i
outlist=list(tempkey.values())
print(outlist)
俺选择用pandas
a = [['北京','海淀', 2000],['北京','海淀',1000],['北京','丰台',2000],['武汉','汉阳',1000],['武汉','汉阳',4000]]
ls=pd.DataFrame(a).groupby([0,1]).sum().reset_index().to_numpy().tolist()
print(ls)
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!