【发布时间】:2019-09-26 14:34:30
【问题描述】:
我有一个元组列表,比如说
tuplist = [('a','b'),('a','c'),('e','f'),('f','c'),('d','z'),('z','x')]
我正在尝试获取以下内容:
('a','b','c','e','f'),('d','z','x')
这是链接在一起的所有元素(就像图论中的树) 上述元组中的顺序(也可以是列表)无关紧要。
我已经设法获得单个元素的所有链接的字典,但我正在努力以一种干净有效的方式获得最终结果...... 到目前为止,这是我的代码:
ll=[('a','b'),('a','c'),('e','f'),('f','c'),('d','z'),('z','x')]
total = {}
total2={}
final=[]
for element in set([item for sublist in ll for item in sublist]):
tp = []
for tupl in ll:
if element in tupl:
tp.append(tupl)
tp = list(frozenset([item for sublist in tp for item in sublist]))
total[element] = tp
print(total)
【问题讨论】:
-
在我进入你的代码之前,这里有一个有用的链接en.wikipedia.org/wiki/Component_(graph_theory)我会特别注意关于en.wikipedia.org/wiki/Disjoint-set_data_structure的部分