添加点头和属性列表以及KeyError!

时间:2010-08-23 14:26:11

标签: python networkx

在我的案例中,我有每个被称为'times'的属性列表的节点。 我制作了一个这样的简单模型,我得到了KeyError'时间'。我需要使用“时间”列表将每个节点保存为属性。我该如何解决?

import networkx as nx
G = nx.DiGraph()
for u in range(10):
    for t in range(5):
        if G.has_node(u):
            G[u]['times'].append(t)
        else:
            G.add_node(u,times=[t])
print(G.nodes(data=True))

3 个答案:

答案 0 :(得分:1)

你可以做到

G[u].setdefault('times', []).append(t)

而不是

G[u]['times'].append(t)

答案 1 :(得分:0)

试试这个

import networkx as nx
G = nx.DiGraph()
for u in range(10):
    for t in range(5):
        if G.has_node(u):
            if not 'times' in G[u] # this
                G[u]['times'] = [] # and this
            G[u]['times'].append(t)
        else:
            G.add_node(u,times=[t])
print(G.nodes(data=True))

答案 2 :(得分:0)

这就是我想要的,相当容易!

import networkx as nx
G = nx.DiGraph()
for u in range(2):
    for t in range(5):
        if u in G:
           G.node[u]['times'].append(t)
        else:
           G.add_node(u,times=[t])
print(G.nodes(data=True))