擅长:python、mysql、java
<p>可以使用连续合并方法对集合执行此操作:</p>
<pre><code>coll = [['aaaa', 'aaab', 'abaa'],
['bbbb', 'bbbb'],
['aaaa', 'bbbb'],
['dddd', 'dddd'],
['bbbb', 'bbbb', 'cccc','aaaa'],
['eeee','eeef','gggg','gggi'],
['gggg','hhhh','iiii']]
pooled = [set(subList) for subList in coll]
merging = True
while merging:
merging=False
for i,group in enumerate(pooled):
merged = next((g for g in pooled[i+1:] if g.intersection(group)),None)
if not merged: continue
group.update(merged)
pooled.remove(merged)
merging = True
print(pooled)
# [{'aaaa', 'abaa', 'aaab', 'cccc', 'bbbb'}, {'dddd'}, {'gggg', 'eeef', 'eeee', 'hhhh', 'gggi', 'iiii'}]
</code></pre>