要从NetworkX图(Graph)中删除具有特定属性的边,您可以使用remove_edges_from()
方法配合列表推导式来筛选并删除满足条件的边
import networkx as nx
# 创建一个示例图
G = nx.Graph()
# 添加节点和带属性的边
G.add_edge(1, 2, attribute='A')
G.add_edge(1, 3, attribute='B')
G.add_edge(2, 3, attribute='A')
G.add_edge(3, 4, attribute='C')
# 打印图中的边及其属性
print("原始图中的边:")
for u, v, data in G.edges(data=True):
print(u, v, data)
# 要删除的属性值
attribute_to_remove = 'A'
# 获取要删除的边的列表
edges_to_remove = [(u, v) for u, v, data in G.edges(data=True) if data.get('attribute') == attribute_to_remove]
# 从图中删除这些边
G.remove_edges_from(edges_to_remove)
# 打印更新后的图中的边及其属性
print("
删除属性值为'A'的边后:")
for u, v, data in G.edges(data=True):
print(u, v, data)
上述代码首先创建一个带有属性的简单图,然后删除具有指定属性值(如 'A'
)的边。最后,打印已删除属性的边后的图。
领取专属 10元无门槛券
手把手带您无忧上云