【问题标题】:Adding edges create duplicate nodes instead of using the already added nodes添加边会创建重复节点,而不是使用已添加的节点
【发布时间】:2019-01-02 04:51:58
【问题描述】:

我通过将对象字典传递给add_nodes_from 函数来添加节点。

然后我通过将列表传递给add_edges_from 函数来指定边。

当添加边时,它们会创建重复的节点,而不是使用之前已经添加的节点。

import networkx as nx
import matplotlib.pyplot as plt

from Employee import Employee

G = nx.DiGraph()

employees = {
    "John": Employee("John"),
    "Mathews": Employee("Mathews"),
    "Joseph": Employee("Joseph"),
    "Lana": Employee("Lana"),
    "Debrah": Employee("Debrah"),
    "Greg": Employee("Greg"),
    "Bob": Employee("Bob"),
    "Mary": Employee("Mary"),

}

connections = [
    (employees.get("John"), employees.get("Debrah")),
    (employees.get("John"), employees.get("Mary")),
    (employees.get("Mary"), employees.get("Greg")),
    (employees.get("Mary"), employees.get("Lana")),
    (employees.get("Mary"), employees.get("Debrah")),
    (employees.get("Mathews"), employees.get("Joseph")),
    (employees.get("Mathews"), employees.get("Debrah")),
    (employees.get("Mathews"), employees.get("Mary")),
    (employees.get("Lana"), employees.get("Debrah")),
    (employees.get("Greg"), employees.get("Bob")),

]

G.add_nodes_from(employees)

G.add_edges_from(connections)

print(G.nodes)

输出

['约翰','马修斯','约瑟夫','拉娜','黛布拉','格雷格','鲍勃','玛丽', 约翰、黛布拉、玛丽、格雷格、拉娜、马修斯、约瑟夫、鲍勃]

【问题讨论】:

    标签: python networkx


    【解决方案1】:
    G.add_nodes_from(employees)
    

    这是使用字典的键(字符串)添加节点

    G.add_edges_from(connections)
    

    这是使用字典(员工)的值添加边

    【讨论】:

    • 谢谢。这对我来说是一个愚蠢的错误。使用 employees.values() 可以得到字典中的值列表。
    猜你喜欢
    • 1970-01-01
    • 2015-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-05
    相关资源
    最近更新 更多