Когда я пытаюсь использовать set_edge_attributes в NetworkX присвоить целое значение нового атрибута для всех edeges (есть неориентированный NetworkX G уже):получить ошибки при использовании «set_edge_attributes»
nx.set_edge_attributes(G, 'new_attr', 1)
показывает ошибку
AttributeError: 'int' object has no attribute 'items'
Но так как по https://networkx.github.io/documentation/latest/reference/generated/networkx.classes.function.set_edge_attributes.html:
If values is not a dictionary, then it is treated as a single attribute value that is then applied to every edge in G.
Так оно и должно быть в порядке установить одинаковое целочисленное значение для каждого ребра в графе? Или я не могу «создать» новый атрибут и использовать существующий атрибут?
Update: кажется, что я могу использовать
G.edge[u][v]['new_attr']
для создания и доступа к атрибуту. Но есть ли более простой способ присвоить значение сразу без использования цикла? Мне нужно инициализировать сеть с тем же начальным значением для атрибута.
Спасибо! Он работает нормально. Я не знаю, почему вчера это не сработало. – Jingjin
Btw, я понял, что на моем другом компьютере с версией 2.7.3 python это сообщение об ошибке все еще появляется. В таком случае мне нужно сначала обновить свой python? – Jingjin