Необходимо создать список наборов из списка наборов, элементы которых могут быть связаны

Я имею дело с полигональными данными в реальном времени, но проблемы довольно простые. У меня есть огромный список, содержащий тысячи наборов неопределенностей многоугольников (целых чисел), и мне нужно максимально "быстро" упростить список до списка наборов "связанных" значений. i.e. Any sets containing integers that are also in another set become one set in the result. I've read several possible solutions involving sets & graphs etc. All i'm after are a final list of sets which had any degree of commonality.

I'm dealing with lots of data here, but for simplicities sake here's some sample data:

setA = set([0,1,2])
setB = set([6,7,8,9])
setC = set([4,5,6])
setD = set([3,4,5,0])
setE = set([10,11,12])
setF = set([11,13,14,15])
setG = set([16,17,18,19])

listOfSets = [setA,setB,setC,setD,setE,setF,setG]

In this case I'm after a list with a result like this, although ordering is irrelevant:

connectedFacesListOfSets = [ set([0,1,2,3,4,5,6,7,8,9]), set([10,11,12,13,14,15]), set([16,17,18,19])]

I've looked for similar solutions, but the one with the highest votes gave incorrect results on my large test data.

Merge lists that share common elements

7
задан Community 23 May 2017 в 11:53
поделиться