gpt4 book ai didi

python - 将配对值的元组(或列表列表)的元组拆分为独立的完整集合?

转载 作者:太空狗 更新时间:2023-10-30 01:16:36 26 4
gpt4 key购买 nike

我在 csv 文件中有成对的值。配对值都不一定是唯一的。我想将这个大列表拆分成独立的完整集合以供进一步分析。

为了说明,我的“ super 主义者”是这样的:

megalist = [['a', 'b'], ['a', 'd'], ['b', 'd'],['b', 'f'], ['r', 's'], ['t', 'r']...]

最重要的是,输出将保留成对值列表(即不合并值)。理想情况下,输出最终会产生不同的 csv 文件,以便稍后进行单独分析。例如,这个 super 巨星将是:

completeset1 = [['a', 'b'], ['a', 'd'], ['b', 'd'], ['b', 'f']]
completeset2 = [['r', 's'], ['t', 'r']]
...

在图论的背景下,我试图获取一个巨大的互斥子图图(其中配对值是连接的顶点)并将它们拆分为更易于管理的独立图。感谢您的任何输入!

编辑 1:这让我处于可以前进的位置。再次感谢!

import sys, csv
import networkx as nx

megalist = csv.reader(open('megalistfile.csv'), delimiter = '\t')

G = nx.Graph()
G.add_edges_from(megalist)

subgraphs = nx.connected_components(G)

output_file = open('subgraphs.txt','w')

for subgraph in subgraphs:
output_line = str(G.edges(subgraph)) + '\n'
output_file.write(output_line)

output_file.close()

最佳答案

您可以使用 networkx为了这。构建图表:

>>> import networkx as nx
>>> megalist = [['a', 'b'], ['a', 'd'], ['b', 'd'],['b', 'f'], ['r', 's'], ['t', 'r']]
>>> G = nx.Graph()
>>> G.add_edges_from(megalist)

然后获取子列表:

>>> subgraphs = nx.connected_components(G)
>>> subgraphs
[['a', 'b', 'd', 'f'], ['s', 'r', 't']]
>>> [G.edges(subgraph) for subgraph in subgraphs]
[[('a', 'b'), ('a', 'd'), ('b', 'd'), ('b', 'f')], [('s', 'r'), ('r', 't')]]

关于python - 将配对值的元组(或列表列表)的元组拆分为独立的完整集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12320902/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com