假设我有以下嵌套列表:
L = [['John','Sayyed'], ['John' , 'Simon'] ,['bush','trump'],
['Sam','Suri','NewYork'],['Suri','Orlando','Canada']]
Run Code Online (Sandbox Code Playgroud)
如何通过将具有共同元素的子列表与该组中的至少另一个子列表结合起来,对这些子列表进行分组?所以对于前面的例子,结果应该是:
[['John','Sayyed','Simon'] ,['bush','trump'],
['Sam','Suri','NewYork','Orlando','Canada']]
Run Code Online (Sandbox Code Playgroud)
因此,前两个子列表在他们共享时加入'John'.有人可以分享他们宝贵的想法吗?
我正在寻找一个聪明/快速的C++算法,它允许我在内部包含公共对象时对几个对象列表进行分组.假设我有N个列表,每个列表包含与一个元素E关联的1..M个对象(O):
[O1, O2] -> E1
[O3] -> E2
[O1, O4, O5] -> E3
[O2, O5] -> E4
[O3, O6] -> E5
Run Code Online (Sandbox Code Playgroud)
我希望将它们重新排列成以下内容:
[O1, O2, O4, O5] -> [E1, E3, E4]
[O3, O6] -> [E2, E5]
Run Code Online (Sandbox Code Playgroud)
结果将所有常见对象与所有关联元素组合在一起.列表之间没有共享对象.