Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何消除图形中的重复项_Python_Graph_Networkx - Fatal编程技术网

Python 如何消除图形中的重复项

Python 如何消除图形中的重复项,python,graph,networkx,Python,Graph,Networkx,我正在从元组“朋友”列表中构建一个社交图,如下所示: (4118181 {'last_name': 'Belousov', 'first_name': 'Mikhail'}) 下面是函数: def addToGraph (g, start, friends): g.add_nodes_from(friends) egdes_to_add = [(start, entry[0]) for entry in friends] g.add_edges_from(edges_t

我正在从元组“朋友”列表中构建一个社交图,如下所示:

(4118181 {'last_name': 'Belousov', 'first_name': 'Mikhail'})
下面是函数:

def addToGraph (g, start, friends):
    g.add_nodes_from(friends)
    egdes_to_add = [(start, entry[0]) for entry in friends]
    g.add_edges_from(edges_to_add)
    return g
结果,我得到了一个具有重复数量节点的图,第一个具有属性,来自

g.add_nodes_from(friends)
第二个是来自

 g.add_edges_from(edges_to_add)

我阅读了文档,但不知道如何添加具有属性的节点和这些节点之间的边?

因此,您的函数在节点
开始
好友
中的每个节点之间添加边。我尝试了你的代码,没有得到任何重复的节点。下面是我的完整示例(请注意,我纠正了代码中的几个错误)

输出:

Nodes: [3333333, 4118181, 2222222, 1111111]
Edges: [(3333333, 4118181), (4118181, 4118181), (4118181, 2222222), (4118181, 1111111)]

你的节点是整数。你的边是线。添加节点时,它会添加一组名称为整数的节点。当它添加一条边时,它会在字符串
'4118181'
'340559596'
之间看到一条新边。Python将这些节点视为不同于整数,因此它使用新名称创建新节点,并在它们之间放置一条边


要解决此问题,您需要在添加边之前将字符串转换为整数。

您可以发布节点和边的外观(
g.nodes(data=True)
g.edges(data=True)
)?一半节点:
((175472863,'Bulenok','Olga'),{})
,另一半,空副本:
('175472863',{})
和边:
('4118181','340559596',{})
什么是
开始
,节点id?如何调用此函数?start是一个人的id号,我正在研究他的社交关系,start和entry[0]都是节点,实际上,此函数用于构建朋友、朋友的朋友等的全局图。
Nodes: [3333333, 4118181, 2222222, 1111111]
Edges: [(3333333, 4118181), (4118181, 4118181), (4118181, 2222222), (4118181, 1111111)]