Python 如何使用字典创建具有附加属性的图形节点

Python 如何使用字典创建具有附加属性的图形节点,python,dictionary,anaconda,networkx,graph-theory,Python,Dictionary,Anaconda,Networkx,Graph Theory,尝试创建如下图形: import networkx as nx from datetime import datetime #create undirected graph g g = nx.Graph() #add nodes g.add_node("John", {"name":"John", "age":25}) g.add_node("Peter", {'name': 'Peter', 'age':35}) g.add_node("Mary", {'name': 'Mary', 'ag

尝试创建如下图形:

import networkx as nx
from datetime import datetime

#create undirected graph g
g = nx.Graph()
#add nodes
g.add_node("John", {"name":"John", "age":25})
g.add_node("Peter", {'name': 'Peter', 'age':35})
g.add_node("Mary", {'name': 'Mary', 'age':31})
g.add_node("Lucy", {'name': 'Lucy', 'age':19})
#add edges
g.add_edge("John", "Mary", {'Since': datetime.today()})
g.add_edge("John", "Peter", {'Since': datetime(1990, 7, 30)})
g.add_edge("John", "Mary", {'Since': datetime(2010,8, 10)})

print(g.nodes())
print(g.edges())
print(g.has_edge("Lucy", "Mary"))
错误


你知道如何解决这个问题吗?

这可以通过在属性字典前面加上
**
来实现。有关更多详细信息,请参阅文档

import networkx as nx
from datetime import datetime

#create undirected graph g
g = nx.Graph()
#add nodes
g.add_node("John", **{"name":"John", "age":25})
g.add_node("Peter", **{'name': 'Peter', 'age':35})
g.add_node("Mary", **{'name': 'Mary', 'age':31})
g.add_node("Lucy", **{'name': 'Lucy', 'age':19})
#add edges
g.add_edge("John", "Mary", **{'Since': datetime.today()})
g.add_edge("John", "Peter", **{'Since': datetime(1990, 7, 30)})
g.add_edge("John", "Mary", **{'Since': datetime(2010,8, 10)})

print(g.nodes())
print(g.edges())
print(g.has_edge("Lucy", "Mary"))
输出:

['John', 'Peter', 'Mary', 'Lucy']
[('John', 'Mary'), ('John', 'Peter')]
False
>>> g.nodes['John']
{'name': 'John', 'age': 25}
g.add_节点(“John”,name=“John”,age=25)
反而会更干净