在多个列表中找到共同的值并绘制图表(python+ networkx)



我想找到存在于所有列表中的数字。我正在尝试,但这段代码给我不可哈希错误。还有谁能帮我如何删除这个错误??代码和截图如下

import networkx as nx
G = nx.karate_club_graph()
tri=nx.triangles(G) 
all_cliques= nx.enumerate_all_cliques(G)
triad_cliques=[x for x in all_cliques if len(x)==3 ]
print(triad_cliques)
cliques = nx.find_cliques(G)
cliques3 = [clq for clq in cliques if 3<=len(clq)<= 3]
print()
elements_in_all = list(set.intersection(*map(set, [cliques,triad_cliques])))
print(elements_in_all)

[错误][1]:https://i.stack.imgur.com/5Ei0H.png

我认为set不能接受list作为元素。所以我用3个数的元组代替了3个数的列表。我将cliques3替换为cliques,并插入cliques打印:

import networkx as nx
G = nx.karate_club_graph()
tri=nx.triangles(G) 
all_cliques= nx.enumerate_all_cliques(G)
triad_cliques=[x for x in all_cliques if len(x)==3 ]
print(triad_cliques)
cliques = nx.find_cliques(G)
cliques = [clq for clq in cliques if 3<=len(clq)<= 3] # replaced cliques3 by cliques
print(cliques) # inserted cliques to print
# elements_in_all = list(set.intersection(*map(set, [cliques,triad_cliques]))) ## line replaced by the next
elements_in_all = set([tuple(x) for x in triad_cliques]) & set([tuple(x) for x in cliques])
print(elements_in_all)

输出:[[0 1 2],[0, 1, 3],[0 1 7],[0, 1, 13],[0, 1, 17],[0, 1, 19],[0, 1, 21],[0, 2, 3],[0、2、7],[0 2 8],[0、2、13],[0、3、7],[0、3、12],[0、3、13],[0,4、6],[0、4、10],[0 5 6],[0、5、10],[1,2,3],[1、2、7]、[1、2、13],[1、3、7],[1、3、13],[2、3、7],[2、3、13],[2,8,32],[5 6 16],[8、30、32],[8 30 33],[8、32、33],[14,32岁,33],[15,32岁,33],[18岁,32岁,33],[20、32、33],[22,32岁,33],[23日,27日,33],[23日,29日,32],[33]23日,29日,23日,32岁,33,[31日24日25日],[26日,29日,33]、[33]28日31日,29、32、33,(30、32、33],[第三十一条、第三十二条、第三十三]][[0, 1, 17],[0, 1, 19],[0, 1, 21],[0、4、10],[0,4、6],[0、5、10],[0 5 6],[0 8 2],[3]0,12日,[2 32 8],[6]5日,16日,[33,32岁,14],[33,32岁,15],[33,32岁,18],[33,32岁,20],[33,32岁,22],[33,32岁,31],[33,26岁,29],[33,27日23],[33,28日,31],[31日24日25日]]{(0、5、10),(0,1,19),(0、5、6),(0、4、10),(31)24日,25日,(0、4、6),(0,1,21),(0,1,17)}

最新更新