删除边缘属性的pythonic方法

滑雪蜂

为了从networkx图中删除属性,我有以下代码:

for (n1,n2) in graph.edges(data=False):  
    for att in att_list:  
        graph[n1][n2].pop(att, None)  

有没有更Python的方式来做到这一点?

乔尔

如果只想删除某些列表中的一些属性,请说 att_list

for n1, n2, d in graph.edges(data=True):
    for att in att_list:
        d.pop(att, None)

或者,if att in d: del d[att]如果麻烦的是您pop返回的最后一行返回您未使用的内容可以将其替换为与您的代码相比,改进之处在于可以让data=Trued立即得到,而不必graph[n1][n1]稍后引用

有关如何从字典中删除多个键(这是安全的)请参阅安全地从字典中删除多个键d从根本上讲,这是您解决问题后要解决的问题d

或者,如果要清除所有属性,请注意,如果我们设置data=True,那么graph.edges还会返回一个包含属性的字典。清除此词典。

for (n1, n2, d) in graph.edges(data=True):
    d.clear()

这是一个完整的例子

import networkx as nx
G=nx.Graph()
G.add_edge(1,2,weight=2)
G.edge[1][2]
> {'weight': 5}

for (n1, n2, d) in G.edges(data=True):
    d.clear()
G.edge[1][2]
> {}
#just to check the edge in the opposite order
G.edge[2][1]
> {}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何通过inV outV和特定属性删除重复边缘?

如果键与某项匹配,则删除字典的更多pythonic方法

遍历数组并删除所有None的Pythonic方法

Pythonic 处理正在写入的文件是否从外部删除的方法

从字符串中删除特定字符的 Pythonic 方法

将属性添加到类的更多Pythonic方法?

重载类变量(属性)的pythonic方法是什么?

Networkx边缘属性

从边缘表中删除重复的边缘

如何在.NET MVC中使用C#创建和删除边缘属性(Titan 1.0)?

从 matplotlib 图表中删除边缘

emacs删除页面边缘的空格

CytoscapeJS删除节点并移动边缘

OSMnx边缘几何属性丢失

用Pythonic方法按属性比较两个无序列表的方法

边缘检测方法比Canny边缘检测更好

对象不支持边缘和 IE10 上的属性或方法“propAttr”

从Pandas的列中的行中删除特殊字符的最Pythonic方法

删除可能不存在的文件的大多数pythonic方法

删除可能不存在的文件的大多数pythonic方法

从两个不同列表中的 dict 中删除重复键/值的更多 Pythonic 方法

从列表中删除某些重复元素的最佳(Pythonic)方法是什么?

从列表中删除重复项并以相反顺序排序的最佳/最pythonic方法

从字符串中删除字符并创建子字符串的最pythonic方法是什么?

从字符串中识别和删除子字符串的pythonic方法

对象不支持属性或方法“删除”

如何删除jspDestroy()方法上的会话属性

检查类的所有实例是否具有确定属性的特定值的最pythonic方法

pythonic装饰类方法