Python | Removing a duplicate substring from a list



Method # 1: Using set () + split ()
This particular problem can be solved by using the split function to have a target string, and then set which will actually remove the duplication from the line.

# Python3 demo code
# removing duplicate substrings
# using set () + split ()

 
# initializing list

test_list = [ `aa-aa-bb` , `bb-cc` , ` gg-ff-gg` , `hh-hh` ]

 
# print original list

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

 
# using set () + split ()
# remove duplicate substrings

res = [ set (sub.split ( `-` )) for sub in test_list]

 
# print result and

print ( "The list after duplicate removal: " + str (res))

Output:

 The original list: [`aa -aa-bb`, `bb-cc`,` gg-ff-gg`, `hh-hh`] The list after duplicate removal: [{` aa`, `bb`}, {` cc`, `bb `}, {` gg`, `ff`}, {` hh`}] 

Method # 2: Using {} + split () + list comprehension
For cases where we need to completely split strings as a separate component, we can use this set of methods to accomplish this task. The curly braces transform for setting and resting all functionality similar to the method above.

# Python3 demo code
# removing duplicate substrings
# using {} + split () + list comprehension

  
# initializing list

test_list = [ `aa-aa-bb` , `bb-cc` , ` gg-ff-gg` , `hh-hh` ]

 
# print the original cn claim

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

 
# using {} + split () + list comprehension
# remove duplicate substrings

res = list ({i for sub in test_list for i in sub.split ( `-` )})

 
# print result

< p> print ( "The list after duplicate removal:" + str (res))

Output:

 The original list: [`aa-aa-bb`,` bb-cc `,` gg-ff-gg`, `hh-hh`] The list after duplicate removal: [` cc`, `ff`,` aa`, `hh`,` gg`, `bb`]