파이썬3
리스트 안에 겹치는 것이 1개라도 있는 것들을 합치는 기능
TTSR
2024. 4. 2. 16:58
728x90
반응형
import networkx as nx
coll = [['aaaa', 'aaab', 'abaa'],
['bbbb', 'bbbb'],
['aaaa', 'bbbb'],
['dddd', 'dddd'],
['bbbb', 'bbbb', 'cccc','aaaa'],
['eeee','eeef','gggg','gggi'],
['gggg','hhhh','iiii']]
edges = []
for i in range(len(coll)):
a = coll[i]
for j in range(len(coll)):
if i != j:
b = coll[j]
if set(a).intersection(set(b)):
edges.append((i,j))
G = nx.Graph()
G.add_nodes_from(range(len(coll)))
G.add_edges_from(edges)
for c in nx.connected_components(G):
combined_lists = [coll[i] for i in c]
flat_list = [item for sublist in combined_lists for item in sublist]
print(set(flat_list))
출처 : https://stackoverflow.com/questions/56567089/combining-lists-with-overlapping-elements
728x90
반응형