Subtract lists of strings in Python



Method # 1: Using loop + remove()
A combination of the above functions can be used to accomplish this task. In this we remove elements using remove () and check for similar elements using a loop.

# Python3 code to demonstrate how it works
# Subtract linelists
# using loop + delete ()

 
# initialize lists

test_list1 = [ "gfg" , "is" , "best" , "for" , "CS" ]

test_list2 = [ "preffered" , "is" , "gfg" ]

 
# print original lists

print ( "The original list 1:" + str (test_list1))

print ( "The original list 2:" + str (test_list2))

 
# Subtract linelists
# using loop + delete ()

re s = [ele for ele in test_list1]

for a in test_list2:

if a in test_list1:

res.remove ( a)

 
# print result

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

Logout:

< pre> The original list 1: [`gfg`,` is`, `best`,` for`, `CS`] The original list 2: [` preffered`, `is`,` gfg`] The Subtracted list is : [`best`,` for`, `CS`]

Method # 2: Using Counter () + elements ()
A combination of the above functions provides a shortcut to solve this problem. In this, we extract the number of elements in both lists and then perform splitting by extracting them using element ().

# Python3 code to demonstrate how it works
# Subtract linelists
# using Counter () + elements ()

from collections import Counter

 
# initialize lists

test_list1 = [ "gfg " , " is " , "best" , "for" , "CS" ]

test_list2 = [ "preffered" , "is" , "gfg" ]

 
# printing original lists

print ( " The original list 1: " + str (test_list1))

print ( "The original list 2:" + str (test_list2))

  
# Subtract linelists
# using Counter () + elements ()

res = list ((Counter (test_list1) - Counter (test_list2)). elements () )

 
# print result

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

Output:

 The original list 1: [`gfg`,` is`, `best`,` for`, `CS`] The original list 2: [` preffered`, `is`,` gfg`] The Subtracted list is: [`best`,` for`, `CS`]