Skip to content
geeksforgeeks
  • Courses
    • DSA to Development
    • Get IBM Certification
    • Newly Launched!
      • Master Django Framework
      • Become AWS Certified
    • For Working Professionals
      • Interview 101: DSA & System Design
      • Data Science Training Program
      • JAVA Backend Development (Live)
      • DevOps Engineering (LIVE)
      • Data Structures & Algorithms in Python
    • For Students
      • Placement Preparation Course
      • Data Science (Live)
      • Data Structure & Algorithm-Self Paced (C++/JAVA)
      • Master Competitive Programming (Live)
      • Full Stack Development with React & Node JS (Live)
    • Full Stack Development
    • Data Science Program
    • All Courses
  • Tutorials
    • Data Structures & Algorithms
    • ML & Data Science
    • Interview Corner
    • Programming Languages
    • Web Development
    • CS Subjects
    • DevOps And Linux
    • School Learning
  • Practice
    • Build your AI Agent
    • GfG 160
    • Problem of the Day
    • Practice Coding Problems
    • GfG SDE Sheet
  • Contests
    • Accenture Hackathon (Ending Soon!)
    • GfG Weekly [Rated Contest]
    • Job-A-Thon Hiring Challenge
    • All Contests and Events
  • Python Tutorial
  • Interview Questions
  • Python Quiz
  • Python Glossary
  • Python Projects
  • Practice Python
  • Data Science With Python
  • Python Web Dev
  • DSA with Python
  • Python OOPs
Open In App
Next Article:
Remove words containing list characters - Python
Next article icon

Python | Remove List elements containing given String character

Last Updated : 22 Apr, 2023
Comments
Improve
Suggest changes
Like Article
Like
Report

Sometimes, while working with Python lists, we can have problem in which we need to perform the task of removing all the elements of list which contain at least one character of String. This can have application in day-day programming. Lets discuss certain ways in which this task can be performed. 

Method #1 : Using loop This is brute force way in which this task can be performed. In this, we iterate for all list elements and check for occurrence of any character using loop. 

Python3




# Python3 code to demonstrate working of
# Remove List elements containing String character
# Using loop
 
# initializing list
test_list = ['567', '840', '649', '7342']
 
# initializing string
test_str = '1237'
 
# printing original list
print("The original list is : " + str(test_list))
 
# Remove List elements containing String character
# Using loop
res = []
for sub in test_list:
    flag = 0
    for ele in sub:
        if ele in test_str:
            flag = 1
    if not flag:
        res.append(sub)
 
# printing result
print("The list after removal : " + str(res))
 
 
Output : 
The original list is : ['567', '840', '649', '7342'] The list after removal : ['840', '649']

Time Complexity: O(n^2) where n is the number of elements in the list ‘test_list’ as we are using nested for loop.
Auxiliary Space: O(n) as we are using an additional list ‘res’ to store the elements after removal.

Method #2 : Using list comprehension This is another way to perform this task. This is similar to above method. In this we perform the task in similar way as above just as one liner. 

Python3




# Python3 code to demonstrate working of
# Remove List elements containing String character
# Using list comprehension
 
def check_pres(sub, test_str):
    for ele in sub:
        if ele in test_str:
            return 0
    return 1
     
# initializing list
test_list = ['567', '840', '649', '7342']
 
# initializing string
test_str = '1237'
 
# printing original list
print("The original list is : " + str(test_list))
 
# Remove List elements containing String character
# Using list comprehension
res = [ele for ele in test_list if check_pres(ele, test_str)]
 
# printing result
print("The list after removal : " + str(res))
 
 
Output : 
The original list is : ['567', '840', '649', '7342'] The list after removal : ['840', '649']

Time complexity: O(n*m), where n is the length of the list and m is the maximum length of a string in the list.
Auxiliary space: O(1), as the function check_pres only uses a constant amount of space. 

Method #3: Using operator.countOf() method

Python3




# Python3 code to demonstrate working of
# Remove List elements containing String character
import operator as op
 
 
def check_pres(sub, test_str):
    for ele in sub:
        if op.countOf(test_str, ele) > 0:
            return 0
    return 1
 
 
# initializing list
test_list = ['567', '840', '649', '7342']
 
# initializing string
test_str = '1237'
 
# printing original list
print("The original list is: " + str(test_list))
 
# Remove List elements containing String character
# Using list comprehension
res = [ele for ele in test_list if check_pres(ele, test_str)]
 
# printing result
print("The list after removal : " + str(res))
 
 
Output
The original list is: ['567', '840', '649', '7342'] The list after removal : ['840', '649']

Time Complexity:O(N)
Auxiliary Space: O(N)

Method #4: Using filter() and lambda function

Python3




#Python3 code to demonstrate working of
#Remove List elements containing String character
#Using filter() and lambda function
#initializing list
test_list = ['567', '840', '649', '7342']
 
#initializing string
test_str = '1237'
 
#printing original list
print("The original list is : " + str(test_list))
 
#Remove List elements containing String character
#Using filter() and lambda function
res = list(filter(lambda x: all(y not in test_str for y in x), test_list))
 
#printing result
print("The list after removal : " + str(res))
 
 
Output
The original list is : ['567', '840', '649', '7342'] The list after removal : ['840', '649']

Time Complexity: O(N)
Auxiliary Space: O(N) as a new list is returned after filtering the elements.

Method #5: used in this code is a for loop and the “any” function

Python3




# initialize a list of strings
test_list = ['567', '840', '649', '7342']
 
# initialize a string
test_str = '1237'
 
# print the original list
print("The original list is:", test_list)
 
# remove elements from the list that contain any character from test_str
for elem in test_list[:]:
    if any(char in elem for char in test_str):
        test_list.remove(elem)
 
# print the result
print("The list after removal:", test_list)
 
 
Output
The original list is: ['567', '840', '649', '7342'] The list after removal: ['840', '649']

Time Complexity: O(n^2)
Auxiliary Space: O(1)

Method#6: Using Recursive method.

Algorithm:

  1. Define a function named remove_elements that takes two arguments: test_list and test_str.
  2. If the test_list is empty, return an empty list as the base case.
  3. If the first element of the test_list contains a character from the test_str, recursively call the remove_elements function with the tail of the test_list (i.e., all elements except the first).
  4. If the first element of the test_list does not contain any characters from the test_str, add it to the result list and recursively
  5. call the remove_elements function with the tail of the test_list.
  6. Return the result list.

Python3




# Python3 code to demonstrate working of
# Remove List elements containing String character
# Using recursive method
def remove_elements(test_list, test_str):
    if not test_list: # base case
        return []
    elif any(ele in test_str for ele in test_list[0]): # check if element contains string character
        return remove_elements(test_list[1:], test_str)
    else:
        return [test_list[0]] + remove_elements(test_list[1:], test_str)
 
# initializing list
test_list = ['567', '840', '649', '7342']
 
# initializing string
test_str = '1237'
 
# printing original list
print("The original list is : " + str(test_list))
 
# Remove List elements containing String character
# Using recursive method
res = remove_elements(test_list, test_str)
 
# printing result
print("The list after removal : " + str(res))
 
 
Output
The original list is : ['567', '840', '649', '7342'] The list after removal : ['840', '649']

Time complexity:
The time complexity of this algorithm is O(n*m), where n is the length of the input list and m is the maximum length of the string elements in the list. This is because we need to iterate over each element in the list and each character in the string elements to check if the string element contains any character from the given string.

Auxiliary Space:
The space complexity of this algorithm is O(n), where n is the length of the input list. This is because we are creating a result list to store the elements that do not contain the given character. Additionally, the recursive calls will consume some amount of memory on the call stack, but since we are not creating any new data structures in each call, the space complexity of the call stack is constant with respect to the input size.

Method 7 : using the re module to filter out the elements in the list that do not match a regular expression pattern.

steps for this method:

Import the re module.
Initialize a list of strings test_list and a string test_str.
Create a regular expression pattern pattern that matches any character from test_str.
Use the filter() function with a lambda function that matches the regular expression pattern to filter the elements from test_list.
Convert the filtered result to a list using the list() function.
Assign the filtered list back to test_list.

Python3




import re
 
# initialize a list of strings
test_list = ['567', '840', '649', '7342']
 
# initialize a string
test_str = '1237'
 
# create a regular expression pattern that matches any character from test_str
pattern = re.compile('[{}]'.format(test_str))
 
# filter out elements in test_list that do not match the pattern
filtered_list = list(filter(lambda x: not pattern.search(x), test_list))
 
# assign the filtered list back to test_list
test_list = filtered_list
 
# print the result
print("The list after removal:", test_list)
 
 
Output
The list after removal: ['840', '649'] 

The time complexity of this method is O(n), where n is the number of elements in the list. 

The auxiliary space complexity is O(k), where k is the length of the regular expression pattern.



Next Article
Remove words containing list characters - Python
author
manjeet_04
Improve
Article Tags :
  • Python
  • Python Programs
  • Python list-programs
Practice Tags :
  • python

Similar Reads

  • Python | Remove given character from Strings list
    Sometimes, while working with Python list, we can have a problem in which we need to remove a particular character from each string from list. This kind of application can come in many domains. Let's discuss certain ways to solve this problem. Method #1 : Using replace() + enumerate() + loop This is
    8 min read
  • Remove words containing list characters - Python
    In this article, we will explore various methods to remove words containing list characters in Python. The simplest way to do is by using a loop. Using a LoopIterate over each word in the list and check if it contains any of the characters from remove_chars. If a word contains any of those character
    2 min read
  • Python | Remove last character in list of strings
    Sometimes, we come across an issue in which we require to delete the last character from each string, that we might have added by mistake and we need to extend this to the whole list. This type of utility is common in web development. Having shorthands to perform this particular job is always a plus
    8 min read
  • Python | Remove element from given list containing specific digits
    Given a list, the task is to remove all those elements from list which contains the specific digits. Examples: Input: lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 13, 15, 16] no_delete = ['2', '3', '4', '0'] Output: [1, 5, 6, 7, 8, 9, 11, 15, 16] Explanation: Numbers 2, 3, 4, 10, 12, 13, 14 con
    9 min read
  • Python | Remove Kth character from strings list
    Sometimes, while working with data, we can have a problem in which we need to remove a particular column, i.e the Kth character from string list. String are immutable, hence removal just means re creating a string without the Kth character. Let's discuss certain ways in which this task can be perfor
    7 min read
  • Python - Remove Rear K characters from String List
    Sometimes, we come across an issue in which we require to delete the last characters from each string, that we might have added by mistake and we need to extend this to the whole list. This type of utility is common in web development. Having shorthands to perform this particular job is always a plu
    5 min read
  • Python - Remove Non-English characters Strings from List
    Given a List of Strings, perform removal of all Strings with non-english characters. Input : test_list = ['Good| ????', '??Geeks???'] Output : [] Explanation : Both contain non-English characters Input : test_list = ["Gfg", "Best"] Output : ["Gfg", "Best"] Explanation : Both are valid English words.
    8 min read
  • Remove Multiple Characters from a String in Python
    Removing multiple characters from a string in Python can be achieved using various methods, such as str.replace(), regular expressions, or list comprehensions. Each method serves a specific use case, and the choice depends on your requirements. Let’s explore the different ways to achieve this in det
    3 min read
  • Python - Remove characters till K element
    Sometimes, while working with Python, we can have problem in which we need to get all elements in list occurring after particular character in list. This kind of problem can have application in data domains and web development. Lets discuss certain ways in which this task can be performed. Method #1
    5 min read
  • Python - Remove front K characters from each string in String List
    Sometimes, we come across an issue in which we require to delete the first K characters from each string, that we might have added by mistake and we need to extend this to the whole list. This type of utility is common in web development. Having shorthands to perform this particular job is always a
    6 min read
geeksforgeeks-footer-logo
Corporate & Communications Address:
A-143, 7th Floor, Sovereign Corporate Tower, Sector- 136, Noida, Uttar Pradesh (201305)
Registered Address:
K 061, Tower K, Gulshan Vivante Apartment, Sector 137, Noida, Gautam Buddh Nagar, Uttar Pradesh, 201305
GFG App on Play Store GFG App on App Store
Advertise with us
  • Company
  • About Us
  • Legal
  • Privacy Policy
  • In Media
  • Contact Us
  • Advertise with us
  • GFG Corporate Solution
  • Placement Training Program
  • Languages
  • Python
  • Java
  • C++
  • PHP
  • GoLang
  • SQL
  • R Language
  • Android Tutorial
  • Tutorials Archive
  • DSA
  • Data Structures
  • Algorithms
  • DSA for Beginners
  • Basic DSA Problems
  • DSA Roadmap
  • Top 100 DSA Interview Problems
  • DSA Roadmap by Sandeep Jain
  • All Cheat Sheets
  • Data Science & ML
  • Data Science With Python
  • Data Science For Beginner
  • Machine Learning
  • ML Maths
  • Data Visualisation
  • Pandas
  • NumPy
  • NLP
  • Deep Learning
  • Web Technologies
  • HTML
  • CSS
  • JavaScript
  • TypeScript
  • ReactJS
  • NextJS
  • Bootstrap
  • Web Design
  • Python Tutorial
  • Python Programming Examples
  • Python Projects
  • Python Tkinter
  • Python Web Scraping
  • OpenCV Tutorial
  • Python Interview Question
  • Django
  • Computer Science
  • Operating Systems
  • Computer Network
  • Database Management System
  • Software Engineering
  • Digital Logic Design
  • Engineering Maths
  • Software Development
  • Software Testing
  • DevOps
  • Git
  • Linux
  • AWS
  • Docker
  • Kubernetes
  • Azure
  • GCP
  • DevOps Roadmap
  • System Design
  • High Level Design
  • Low Level Design
  • UML Diagrams
  • Interview Guide
  • Design Patterns
  • OOAD
  • System Design Bootcamp
  • Interview Questions
  • Inteview Preparation
  • Competitive Programming
  • Top DS or Algo for CP
  • Company-Wise Recruitment Process
  • Company-Wise Preparation
  • Aptitude Preparation
  • Puzzles
  • School Subjects
  • Mathematics
  • Physics
  • Chemistry
  • Biology
  • Social Science
  • English Grammar
  • Commerce
  • World GK
  • GeeksforGeeks Videos
  • DSA
  • Python
  • Java
  • C++
  • Web Development
  • Data Science
  • CS Subjects
@GeeksforGeeks, Sanchhaya Education Private Limited, All rights reserved
We use cookies to ensure you have the best browsing experience on our website. By using our site, you acknowledge that you have read and understood our Cookie Policy & Privacy Policy
Lightbox
Improvement
Suggest Changes
Help us improve. Share your suggestions to enhance the article. Contribute your expertise and make a difference in the GeeksforGeeks portal.
geeksforgeeks-suggest-icon
Create Improvement
Enhance the article with your expertise. Contribute to the GeeksforGeeks community and help create better learning resources for all.
geeksforgeeks-improvement-icon
Suggest Changes
min 4 words, max Words Limit:1000

Thank You!

Your suggestions are valuable to us.

What kind of Experience do you want to share?

Interview Experiences
Admission Experiences
Career Journeys
Work Experiences
Campus Experiences
Competitive Exam Experiences