按键添加列表到dict

时间:2015-10-21 21:03:34

标签: list python-3.x dictionary append key

我有

symall={}  
for fc in range(0,4):  
    LoadGraphData(files[fc])  
    for tup in mn.symsel:  
        sb,sp,sr,sc,sv,sn = tup  
        symall{sb} = symall{sb}+sr  

fc循环从文件中获取数据并将结果放入mn.symsel中 作为['abc',2,300,2,3,2]['def',3,400,3,2,3]

我选择键'abc'和第二个值
我需要建立一个像

这样的词典

symall{} = {['abc', 300,370,400,200,300],['def',400,.....

第一次迭代应该只将['abc',300]添加到词典中 第二次迭代需要通过键'abc'追加才能获得['abc',300,370] 等。

1 个答案:

答案 0 :(得分:0)

使用defaultdict解决了我自己的问题。

Python 3.5
PyCharm IDE
这是一段更完整的代码 如果有更好的方式,那将是有趣的。

from  collections import defaultdict
import selectval as mn


for fc in range(0,4):
    LoadRangeData(files[fc]) # gets [('ABCD',23.2),('DEFI',34.2)...
    for tup in mn.symsel:
       symin,sympr = tup
       symall += [(symin,sympr)]  # makes [('ABCD',23.2),('ABCD',33.2')
allsym = defaultdict(list)
for s,v in symall:            
    allsym[s].append(v)         # makes [('ABCD',23.2,33.2),...

效果很好