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
#1
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?
Reply
#2
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'}
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Extracting Elements From A Website List knight2000 2 214 Jul-20-2021, 10:38 AM
Last Post: knight2000
  Make Groups with the List Elements quest 2 222 Jul-11-2021, 09:58 AM
Last Post: perfringo
  behavior list of lists roym 5 240 Jul-04-2021, 04:43 PM
Last Post: roym
  I cannot delete and the elements from the list quest 4 617 May-11-2021, 12:01 PM
Last Post: perfringo
  Take first Elements of sublists quest 2 419 Apr-26-2021, 11:32 AM
Last Post: buran
  Find Common Elements in 2 list quest 4 607 Apr-14-2021, 03:57 PM
Last Post: quest
  Sort List of Lists by Column Nju 1 472 Apr-13-2021, 11:59 PM
Last Post: bowlofred
  Sorting Elements via parameters pointing to those elements. rpalmer 3 639 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,408 Jan-28-2021, 03:36 AM
Last Post: bowlofred
Question How to print multiple elements from multiple lists in a FOR loop? Gilush 6 658 Dec-02-2020, 07:50 AM
Last Post: Gilush

Forum Jump:

User Panel Messages

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