Python Forum
List of lists - merge sublists with common elements
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
List of lists - merge sublists with common elements
Assume I have list1 as follows:

list1 = [['a','b'],['c','d'],['b','e'],['f','g'],['a','h'],['i','c']]
I want to merge the sublists that have common elements, so based on the above example the resulting list will be

list2 = [['a','b','e','h'],['c','d','i'],['f','g']]
I could do things like parse each element separately and do comparisons all over etc. but the input list can be pretty long (maybe many hundreds or even millions of elements overall) Is there an efficient way to do this in python?
This is a version of the problem of finding the connected components of a graph. One approach would be to use a library that already has a function to do that, such as networkx.
>>> import networkx as nx
>>> g = nx.Graph()
>>> ipath = [['a','b'],['c','d'],['b','e'],['f','g'],['a','h'],['i','c']]
>>> for p in ipath:
...     g.add_edges_from(zip(p, p[1:]))
>>> for c in nx.connected_components(g):
...     print(c)
{'e', 'h', 'a', 'b'}
{'i', 'c', 'd'}
{'g', 'f'}

Possibly Related Threads…
Thread Author Replies Views Last Post
  Extracting Elements From A Website List knight2000 2 221 Jul-20-2021, 10:38 AM
Last Post: knight2000
  Make Groups with the List Elements quest 2 230 Jul-11-2021, 09:58 AM
Last Post: perfringo
  behavior list of lists roym 5 246 Jul-04-2021, 04:43 PM
Last Post: roym
  I cannot delete and the elements from the list quest 4 621 May-11-2021, 12:01 PM
Last Post: perfringo
  Take first Elements of sublists quest 2 422 Apr-26-2021, 11:32 AM
Last Post: buran
  Find Common Elements in 2 list quest 4 618 Apr-14-2021, 03:57 PM
Last Post: quest
  Sort List of Lists by Column Nju 1 481 Apr-13-2021, 11:59 PM
Last Post: bowlofred
  Sorting Elements via parameters pointing to those elements. rpalmer 3 641 Feb-10-2021, 04:53 PM
Last Post: rpalmer
  Group List Elements according to the Input with the order of binary combination quest_ 19 1,425 Jan-28-2021, 03:36 AM
Last Post: bowlofred
Question How to print multiple elements from multiple lists in a FOR loop? Gilush 6 669 Dec-02-2020, 07:50 AM
Last Post: Gilush

Forum Jump:

User Panel Messages

Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020