簡體   English   中英

Python在多維字典中添加數據

[英]Python adding data in multi-dimensional dictionary

while (E > 0):
    line = raw_input("enter edges : ")
    data = line.split()
    mygraph[data[0]] = {data[1] : data[2]} //this line 
    print mygraph
    E-=1

所需的數據結構:

mygraph = { 
        'B': {'A': 5, 'D': 1, 'G': 2}
        'A': {'B': 5, 'D': 3, 'E': 12, 'F' :5}}

我想為相同的鍵添加多個條目,但mycode僅為一個節點取一個值,然后替換條目。如何做到這一點?

您需要首先為鍵data[0]添加一個空字典(如果尚不存在),然后向其中添加值。 否則,您每次循環時都將其清除。

兩種常用方法是在普通字典上使用setdefault

mygraph.setdefault(data[0], {})[data[1]] = data[2]

或使用collections.defaultdict ,其中默認值為空字典:

>>> from collections import defaultdict

>>> mygraph = defaultdict(dict)

>>> edges = [[1, 2, 3], [1, 3, 6]]
>>> for edge in edges:
...     mygraph[edge[1]][edge[2]] = edge[3]

>>> mygraph
{1: {2: 3,
     3: 6}}

替換此行:

mygraph[data[0]] = {data[1] : data[2]}

用這些:

if not data[0] in mygraph:
    mygraph[data[0]] = {}
mygraph[data[0]][data[1]] = data[2]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM