我在为一些可能并不复杂的事情而挣扎。我有一个列表列表,如果元素共享任何公共元素,我想将它们分组在一起:
例如,第一个列表[1,2]与第三个列表[3,4]分组,因为它们与第二个列表[2,3]“重叠”
一定有比以下更简单的方法:
a = [[1,2],
[2,3],
[3,4],
[7,8]]
newlist = []
for count, pair in enumerate(a):
if count==0:
newlist.append(pair)
else:
for index, group in enumerate(newlist):
if not set(group).isdisjoint(pair):
newlist[index].extend(pair)
else:
newlist.append(pair)
newlist = [set(group) for group in newlist]
newlist
[{1, 2, 3, 4}, {8, 7}]
与thispost类似,一种方法是使用} 将列表添加为图边。然后使用^{} ,它将精确地给出图形中连接组件集的列表:
networkx
。生成一个图,并使用^{相关问题 更多 >
编程相关推荐