嵌套添加属性(NetworkX)/字典理解
Nested addition of attributes (NetworkX) / dictionary comprehension
希望这个标题不太清楚,我想添加一个嵌套字典理解,其基本目标是使用循环在 NetworkX 中添加节点属性,输出类似于:
[('x1', {'a': 0}, {'b': 5}, {'c': 10} ),
('x2', {'a': 1}, {'b': 6}, {'c': 11} ),
...]
我认为可行的方法:
a = [ ( 'x%d' % h, {'1st': i}, {'2nd': j}, {'3rd': k} )
for h in range(1,17), for i in range(0,6),
for j in range(5,11), for k in range(10,16) ]
但这返回了 "SyntaxError: invalid syntax"。
编辑:我将在一个单独的问题中询问前面提到的第二部分 - 到目前为止谢谢!
删除 for 循环之间的 ,
:
a = [ ('x%d' % h, {'1st': i}, {'2nd': j}, {'3rd': k}) for h in range(1,17) for i in range(0,6) for j in range(5,11) for k in range(10,16) ]
您的代码中存在语法错误:for
之前的逗号无效。您只需要按照 中的说明删除它们。但是,它的行为类似于嵌套 for
循环,而您希望 h, i, j, k
同时增加。可以通过以下方式实现所需的输出:
[ ( 'x%d' % h, {'1st': i}, {'2nd': j}, {'3rd': k} )
for h, i, j, k in zip(range(1,17), range(0,6), range(5,11), range(10,16))]
甚至更好:
[ ( 'x%d' % (i+1), {'1st': i}, {'2nd': i+5}, {'3rd': i+10} ) for i in range(6)]
希望这个标题不太清楚,我想添加一个嵌套字典理解,其基本目标是使用循环在 NetworkX 中添加节点属性,输出类似于:
[('x1', {'a': 0}, {'b': 5}, {'c': 10} ),
('x2', {'a': 1}, {'b': 6}, {'c': 11} ),
...]
我认为可行的方法:
a = [ ( 'x%d' % h, {'1st': i}, {'2nd': j}, {'3rd': k} )
for h in range(1,17), for i in range(0,6),
for j in range(5,11), for k in range(10,16) ]
但这返回了 "SyntaxError: invalid syntax"。
编辑:我将在一个单独的问题中询问前面提到的第二部分 - 到目前为止谢谢!
删除 for 循环之间的 ,
:
a = [ ('x%d' % h, {'1st': i}, {'2nd': j}, {'3rd': k}) for h in range(1,17) for i in range(0,6) for j in range(5,11) for k in range(10,16) ]
您的代码中存在语法错误:for
之前的逗号无效。您只需要按照 for
循环,而您希望 h, i, j, k
同时增加。可以通过以下方式实现所需的输出:
[ ( 'x%d' % h, {'1st': i}, {'2nd': j}, {'3rd': k} )
for h, i, j, k in zip(range(1,17), range(0,6), range(5,11), range(10,16))]
甚至更好:
[ ( 'x%d' % (i+1), {'1st': i}, {'2nd': i+5}, {'3rd': i+10} ) for i in range(6)]