2016-08-03 26 views
-4

操作这是我的名单:在列表的列表中的元素在python

volume = [['1.986', '3000'], ['1.987', '2000'], ['1.986', '700'],['1.987', '4000']] 

我怎样才能得到成交量的总和[1]当音量[0]是一样的价格?

results = [['1.986', '3700'], ['1.987', '6000']] 
+0

你知道一本字典做什么? – Jasper

+0

[Python Groupby语句]的可能重复(http://stackoverflow.com/questions/15636008/python-groupby-statement) – TessellatingHeckler

回答

2

词典将是一个很好的数据结构在这里使用。默认的dict保存唯一的字符串作为键,并假定空值为0,因为我将它设置为基于int。

from collections import defaultdict 
d = defaultdict(int) 
for v in volume: 
    d[v[0]] += int(v[1]) 
print d 

如果你需要一个名单之后,你可以使用列表理解:

list_version = [[key, value] for key,value in d]

+2

好的答案,谢谢。尽管如此,我会在'for'循环中解压缩元组:',价格,数量,体积:...' – NPE

+0

感谢您的帮助! – egariM