Python – Group Sublists by another List
Last Updated :
20 Feb, 2023
Sometimes, while working with lists, we can have a problem in which we need to group all the sublists, separated by elements present in different list. This type of custom grouping is uncommon utility but having solution to these can always be handy. Lets discuss certain way in which this task can be performed. Method #1 : Using loop + generator(yield) This is brute force way in which this task can be performed. In this, we iterate the list and make groups dynamically using yield. We keep track of elements occurred and restart list when we find element in second list.
Python3
def grp_ele(test_list1, test_list2):
temp = []
for i in test_list1:
if i in test_list2:
if temp:
yield temp
temp = []
yield i
else :
temp.append(i)
if temp:
yield temp
test_list1 = [ 8 , 5 , 9 , 11 , 3 , 7 ]
test_list2 = [ 9 , 11 ]
print ("The original list 1 is : " + str (test_list1))
print ("The original list 2 is : " + str (test_list2))
res = list (grp_ele(test_list1, test_list2))
print ("The Grouped list is : " + str (res))
|
Output :
The original list 1 is : [8, 5, 9, 11, 3, 7]
The original list 2 is : [9, 11]
The Grouped list is : [[8, 5], 9, 11, [3, 7]]
Time Complexity: O(n*n)
Auxiliary Space: O(n)
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...