我有以下节点列表。我想要得到每个节点的经度和纬度。
('11', {'Internal': 1, 'Latitude': -31.93333, 'Country': u'Australia', 'id': 11, 'Longitude': 115.83333, 'label': u'Perth1'})
('10', {'Internal': 1, 'Latitude': -35.28346, 'Country': u'Australia', 'id': 10, 'Longitude': 149.12807, 'label': u'Canberra2'})
('13', {'Internal': 1, 'Latitude': -34.93333, 'Country': u'Australia', 'id': 13, 'Longitude': 138.6, 'label': u'Adelaide1'})
('12', {'Internal': 1, 'Latitude': -31.93333, 'Country': u'Australia', 'id': 12, 'Longitude': 115.83333, 'label': u'Perth2'})
('15', {'Internal': 1, 'Latitude': -37.814, 'Country': u'Australia', 'id': 15, 'Longitude': 144.96332, 'label': u'Melbourne1'})
('14', {'Internal': 1, 'Latitude': -34.93333, 'Country': u'Australia', 'id': 14, 'Longitude': 138.6, 'label': u'Adelaide2'})
('17', {'Internal': 1, 'Latitude': -23.7, 'Country': u'Australia', 'id': 17, 'Longitude': 133.88333, 'label': u'Alice Springs'})
('16', {'Internal': 1, 'Latitude': -37.814, 'Country': u'Australia', 'id': 16, 'Longitude': 144.96332, 'label': u'Melbourne2'})我知道访问就像
G.nodes['11']['longitude']
G.nodes['10']['longitude']
G.nodes['13']['longitude'].但我想要灵活的访问,这意味着如果节点数量增加,不需要更改代码。我该怎么做呢?
发布于 2015-09-06 14:30:05
只需遍历节点即可。遍历节点的“最佳”方法是使用G.nodes_iter() (生成器),但也可以使用G.nodes() (列表):
import networkx as nx
G=nx.Graph()
G.add_node('11', longitude = 3)
for node in G.nodes_iter():
print G.node[node]['longitude']
> 3
G.add_node('3', longitude = 5)
for node in G.nodes_iter():
print G.node[node]['longitude']
>3
>5如果您关心列表的顺序,那么您将希望使用G.nodes()并对其进行适当的排序。
注意-在您的示例中使用了G.nodes[][]。那行不通的。应该是G.node[][]。
发布于 2015-09-08 22:34:28
迭代节点的最紧凑的方法如下:
for i in G:
G.node[i]['longitude']https://stackoverflow.com/questions/32420351
复制相似问题