Skip to content
Related Articles

Related Articles

Improve Article
Python | Filter a list based on the given list of strings
  • Last Updated : 25 Jun, 2019

Given a List, the task is to filter elements from list based on another list of strings. These type of problems are quite common while scraping websites.

Examples:

Input:
List_string1 = ['key', 'keys', 'keyword', 'keychain', 'keynote']
List_string2 = ['home/key/1.pdf',
         'home/keys/2.pdf', 
         'home/keyword/3.pdf', 
         'home/keychain/4.pdf',
         'home/Desktop/5.pdf', 
         'home/keynote/6.pdf']
Output:
['home/Desktop/5.pdf']

Explanation: We filter only those element from 
list_string2 that do not have string in list_string1

Below are some ways to achieve the above task.

Method #1: Using Iteration




# Python code to  filter element from list 
# based on another list of string.
  
# List Initialization
Input = ['key', 'keys', 'keyword', 'keychain', 'keynote']
Input_string = ['home/key/1.pdf',
         'home/keys/2.pdf'
         'home/keyword/3.pdf'
         'home/keychain/4.pdf',
         'home/Desktop/5.pdf'
         'home/keynote/6.pdf']
   
Output = Input_string.copy()
temp = []
  
# Using iteration
for elem in Input_string:
    for n in Input:
        if n in elem:
            temp.append(elem)
  
for elem in temp:
    if elem in Output:
        Output.remove(elem)
  
# Printing
print("List of keywords are:", Input)
print("Given list:", Input_string)
print("filtered list is :", Output)
Output:



List of keywords are: [‘key’, ‘keys’, ‘keyword’, ‘keychain’, ‘keynote’]
Given list: [‘home/key/1.pdf’, ‘home/keys/2.pdf’, ‘home/keyword/3.pdf’, ‘home/keychain/4.pdf’, ‘home/Desktop/5.pdf’, ‘home/keynote/6.pdf’]
filtered list is : [‘home/Desktop/5.pdf’]

 
Method #2: Using list comprehension




# Python code to  filter element from list 
# based on another list of string.
  
# List Initialization
Input = ['key', 'keys', 'keyword', 'keychain', 'keynote']
Input_string = ['home/key/1.pdf',
         'home/keys/2.pdf'
         'home/keyword/3.pdf'
         'home/keychain/4.pdf',
         'home/Desktop/5.pdf'
         'home/keynote/6.pdf']
  
# Using list comprehension
Output = [b for b in Input_string if
          all(a not in b for a in Input)]
  
# Printing
print("List of keywords are:", Input)
print("Given list:", Input_string)
print("filtered list is :", Output)
Output:

List of keywords are: [‘key’, ‘keys’, ‘keyword’, ‘keychain’, ‘keynote’]
Given list: [‘home/key/1.pdf’, ‘home/keys/2.pdf’, ‘home/keyword/3.pdf’, ‘home/keychain/4.pdf’, ‘home/Desktop/5.pdf’, ‘home/keynote/6.pdf’]
filtered list is : [‘home/Desktop/5.pdf’]

 Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.  

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course. And to begin with your Machine Learning Journey, join the Machine Learning – Basic Level Course




My Personal Notes arrow_drop_up
Recommended Articles
Page :