Change language

Python | Grouping similar substrings in a list

|

Method # 1: Using lambda + itertools.groupby () + split ()
Combining the above three functions helps us achieve our goal. The split method is key because it defines the delimiter by which to group. The groupby function groups elements.

# Python3 demo code
# group similar substrings
# using lambda + itertools.groupby () + split ()

from itertools import groupby

 
# initializing list

test_list = [ ’geek_1’ , ’coder_2’ , ’ geek_4’ , ’coder_3’ , ’pro_3’ ]

  
# sort the list
# required for grouping
test_list. sort ()

 
# print original list

print ( "The original list is:" + str (test_list))

 
# using lambda + itertools.groupby () + split ()
# group similar substrings

res = [ list (i) for j, i in groupby (test_list ,

lambda a: a. split ( ’_’ ) [ 0 ])]

 
# print result

print ( "The grouped list is:" + str (res))

Output:

The original list is: [’coder_2 ’,’ coder_3 ’,’ geek_1 ’,’ geek_4 ’,’ pro_3 ’]
The grouped list is: [[’ coder_2 ’,’ coder_3 ’], [’ geek_1 ’,’ geek_4 ’], [’ pro_3 ’]]

Method # 2: Using la mbda + itertools.groupby () + partition ()
A similar task can also be accomplished by replacing the split function with the partition function. This is a more efficient way to accomplish this task as it uses iterators and is therefore internally faster.

# Python3 demo code
# group similar substrings
# using lambda + itertools.groupby () + partition ()

from itertools import groupby

 
# initializing list

test_list = [ ’geek_1 ’ , ’ coder_2’ , ’geek_4’ ’coder_3’ , ’ pro_3’ ]

 
# sort the list
# required for grouping
test_list.sort ()

 
# print original list

print ( "The original list is:" + str (test_list))

  
# using lambda + itertools.groupby () + partition ()
# group similar substrings

res = list (i) for j, i in groupby (test_list,

lambda a: a.partition ( ’_ ’ ) [ 0 ])]

 
# print result

print ( "The grouped list is:" + str (res))

Output:

The original list is: [’coder_2’, ’coder_3’, ’geek_1’, ’geek_4’, ’pro_3 ’]
The grouped list is: [[’ coder_2 ’,’ coder_3 ’], [’ geek_1 ’,’ geek_4 ’], [’ pro_3 ’]]

Python | Grouping similar substrings in a list Python functions: Questions

Python | Grouping similar substrings in a list String Variables: Questions

Shop

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Best laptop for Zoom

$499

Best laptop for Minecraft

$590

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News

Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method