读二部图

2024-04-29 05:25:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从一个.txt文件中读取一个图形,该文件的结构如下:

115564928125997351000, ah.creativecodeapps.tiempo,1
117923818995099650007, air.com.agg.popcornmakermarket,-1
104000841215686444437, air.com.zahdoo.cadie,1
.
.
.

我一直在使用以下命令:

^{pr2}$

但当我做g.edges(data=True)时,我得到了这个:

[('106784557494786869271', ' com.map2app.U5635321228165120A5661458385862656'),
('106784557494786869271',' com.jb.gokeyboard.theme.mzdevelopment.americankeyboard'),
('106784557494786869271', ' com.benbasha.whoopeecushion'),
(' com.airplaneflighttakeoff', '115981152169430603941'),...]

但我希望始终将数值id作为元组的第一个元素。请注意,在我在示例中显示的列表的最后一个元素上并没有发生这种情况。在

我怎么才能拿到这个?稍后我需要迭代这些边,并且需要考虑边上的顺序,这意味着我需要元组的第一个元素始终是数字id。在

问题是,我如何在阅读图表时或完成后实现这一点?在


Tags: 文件txtcomid图形元素air结构
1条回答
网友
1楼 · 发布于 2024-04-29 05:25:28

一种方法是使用^{}来测试节点是否为数字。(例如,请参见this SO answer)然后您可以创建一个边列表,对每条边进行排序,以便数字节点排在第一位:

edges = []
for u, v, d in G.edges(data=True): # note that d contains each edge's data
    if u.isdigit(): # if u is numeric put it first
        edges.append( (u, v, d) )
    else:
        edges.append( (v, u, d) )

或者以一种线性形式:

^{pr2}$

该输出:

^{3}$

相关问题 更多 >