【问题标题】:add lists to dict by key按键添加列表到 dict
【发布时间】:2016-01-21 00:50:50
【问题描述】:

我有

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] 等等。

【问题讨论】:

  • 这看起来不像是有效的 python 语法...

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


【解决方案1】:

使用 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),...

效果很好

【讨论】:

    猜你喜欢
    • 2016-04-08
    • 1970-01-01
    • 1970-01-01
    • 2021-12-10
    • 2022-07-27
    • 1970-01-01
    • 2020-02-25
    • 2018-12-06
    • 1970-01-01
    相关资源
    最近更新 更多