如何添加具有现有边缘属性的边缘?

时间:2020-08-05 13:10:01

标签: python networkx graph-theory

如果边缘具有以下特定属性,我将尝试创建边缘的反向副本:

for i in list(G.edges(data=True, keys=True)):
    if i[3]['DIRECTIONA'] == 'bothDirections':
        G.add_edge(i[1],i[0],attr_dict=i[3])

上面的方法在不方便的情况下可以正常工作,属性采用不同的格式,而不是简单的属性字典,该字典现在位于键“ attr_dict”下的另一个字典中。有什么方法可以简单地将属性词典包含在另一个词典中吗?由于格式不同,它使已经编写的代码无法工作,谢谢。

1 个答案:

答案 0 :(得分:1)

您需要将边缘属性作为多个关键字参数(通常在函数签名中表示为public class a { static String method1(String agr) { return "method1"; } static String method2(String agr) { return "method2"; } static String method3(String agr) { return "method3"; } public static Optional<String> cal(Optional<String> optionalS, Function<String, String> function, String agr) { if (optionalS.isPresent()) return Optional.of(function.apply(agr)); return Optional.empty(); } public static void main(String agr[]) { cal(Optional.empty(), a::method1, "agr func1").orElseGet(() -> cal(Optional.empty(), a::method2, "agr func2").orElseGet(() -> cal(Optional.ofNullable("c"), a::method3, "agr func3").orElse("final result") ) ); } } )提供:

**kwargs