Skip to content
    geeksforgeeks
    • Interview Prep
      • DSA
      • Interview Corner
      • Aptitude & Reasoning
      • Practice Coding Problems
      • All Courses
    • Tutorials
      • Python
      • Java
      • ML & Data Science
      • Programming Languages
      • Web Development
      • CS Subjects
      • DevOps
      • Software and Tools
      • School Learning
    • Tracks
      • Languages
        • Python
        • C
        • C++
        • Java
        • Advanced Java
        • SQL
        • JavaScript
        • C#
      • Interview Preparation
        • GfG 160
        • GfG 360
        • System Design
        • Core Subjects
        • Interview Questions
        • Interview Puzzles
        • Aptitude and Reasoning
        • Product Management
        • Computer Organisation and Architecture
      • Data Science
        • Python
        • Data Analytics
        • Complete Data Science
        • Gen AI
        • Agentic AI
      • Dev Skills
        • Full-Stack Web Dev
        • DevOps
        • Software Testing
        • CyberSecurity
        • NextJS
        • Git
      • Tools
        • Computer Fundamentals
        • AI Tools
        • MS Excel & Google Sheets
        • MS Word & Google Docs
      • Maths
        • Maths For Computer Science
        • Engineering Mathematics
        • School Maths
    • Python Tutorial
    • Data Types
    • Interview Questions
    • Examples
    • Quizzes
    • DSA Python
    • Data Science
    • NumPy
    • Pandas
    • Practice
    • Django
    • Flask
    • Projects
    Open In App

    Python | Remove List elements containing given String character

    Last Updated : 22 Apr, 2023
    Comments
    Improve
    Suggest changes
    1 Likes
    Like
    Report
    See More

    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.

    Create Quiz

    M

    manjeet_04
    Improve

    M

    manjeet_04
    Improve
    Article Tags :
    • Python
    • Python Programs
    • Python list-programs

    Explore

      Python Fundamentals

      Python Introduction

      2 min read

      Input and Output in Python

      4 min read

      Python Variables

      4 min read

      Python Operators

      4 min read

      Python Keywords

      2 min read

      Python Data Types

      8 min read

      Conditional Statements in Python

      3 min read

      Loops in Python - For, While and Nested Loops

      5 min read

      Python Functions

      5 min read

      Recursion in Python

      4 min read

      Python Lambda Functions

      5 min read

      Python Data Structures

      Python String

      5 min read

      Python Lists

      4 min read

      Python Tuples

      4 min read

      Python Dictionary

      3 min read

      Python Sets

      6 min read

      Python Arrays

      7 min read

      List Comprehension in Python

      4 min read

      Advanced Python

      Python OOP Concepts

      11 min read

      Python Exception Handling

      5 min read

      File Handling in Python

      4 min read

      Python Database Tutorial

      4 min read

      Python MongoDB Tutorial

      3 min read

      Python MySQL

      9 min read

      Python Packages

      10 min read

      Python Modules

      3 min read

      Python DSA Libraries

      15 min read

      List of Python GUI Library and Packages

      3 min read

      Data Science with Python

      NumPy Tutorial - Python Library

      3 min read

      Pandas Tutorial

      4 min read

      Matplotlib Tutorial

      5 min read

      Python Seaborn Tutorial

      3 min read

      StatsModel Library - Tutorial

      3 min read

      Learning Model Building in Scikit-learn

      6 min read

      TensorFlow Tutorial

      2 min read

      PyTorch Tutorial

      6 min read

      Web Development with Python

      Flask Tutorial

      8 min read

      Django Tutorial | Learn Django Framework

      7 min read

      Django ORM - Inserting, Updating & Deleting Data

      4 min read

      Templating With Jinja2 in Flask

      6 min read

      Django Templates

      5 min read

      Build a REST API using Flask - Python

      3 min read

      Building a Simple API with Django REST Framework

      3 min read

      Python Practice

      Python Quiz

      1 min read

      Python Coding Practice

      1 min read

      Python Interview Questions and Answers

      15+ min read
    top_of_element && top_of_screen < bottom_of_element) || (bottom_of_screen > articleRecommendedTop && top_of_screen < articleRecommendedBottom) || (top_of_screen > articleRecommendedBottom)) { if (!isfollowingApiCall) { isfollowingApiCall = true; setTimeout(function(){ if (loginData && loginData.isLoggedIn) { if (loginData.userName !== $('#followAuthor').val()) { is_following(); } else { $('.profileCard-profile-picture').css('background-color', '#E7E7E7'); } } else { $('.follow-btn').removeClass('hideIt'); } }, 3000); } } }); } $(".accordion-header").click(function() { var arrowIcon = $(this).find('.bottom-arrow-icon'); arrowIcon.toggleClass('rotate180'); }); }); window.isReportArticle = false; function report_article(){ if (!loginData || !loginData.isLoggedIn) { const loginModalButton = $('.login-modal-btn') if (loginModalButton.length) { loginModalButton.click(); } return; } if(!window.isReportArticle){ //to add loader $('.report-loader').addClass('spinner'); jQuery('#report_modal_content').load(gfgSiteUrl+'wp-content/themes/iconic-one/report-modal.php', { PRACTICE_API_URL: practiceAPIURL, PRACTICE_URL:practiceURL },function(responseTxt, statusTxt, xhr){ if(statusTxt == "error"){ alert("Error: " + xhr.status + ": " + xhr.statusText); } }); }else{ window.scrollTo({ top: 0, behavior: 'smooth' }); $("#report_modal_content").show(); } } function closeShareModal() { const shareOption = document.querySelector('[data-gfg-action="share-article"]'); shareOption.classList.remove("hover_share_menu"); let shareModal = document.querySelector(".hover__share-modal-container"); shareModal && shareModal.remove(); } function openShareModal() { closeShareModal(); // Remove existing modal if any let shareModal = document.querySelector(".three_dot_dropdown_share"); shareModal.appendChild(Object.assign(document.createElement("div"), { className: "hover__share-modal-container" })); document.querySelector(".hover__share-modal-container").append( Object.assign(document.createElement('div'), { className: "share__modal" }), ); document.querySelector(".share__modal").append(Object.assign(document.createElement('h1'), { className: "share__modal-heading" }, { textContent: "Share to" })); const socialOptions = ["LinkedIn", "WhatsApp","Twitter", "Copy Link"]; socialOptions.forEach((socialOption) => { const socialContainer = Object.assign(document.createElement('div'), { className: "social__container" }); const icon = Object.assign(document.createElement("div"), { className: `share__icon share__${socialOption.split(" ").join("")}-icon` }); const socialText = Object.assign(document.createElement("span"), { className: "share__option-text" }, { textContent: `${socialOption}` }); const shareLink = (socialOption === "Copy Link") ? Object.assign(document.createElement('div'), { role: "button", className: "link-container CopyLink" }) : Object.assign(document.createElement('a'), { className: "link-container" }); if (socialOption === "LinkedIn") { shareLink.setAttribute('href', `https://www.linkedin.com/sharing/share-offsite/?url=${window.location.href}`); shareLink.setAttribute('target', '_blank'); } if (socialOption === "WhatsApp") { shareLink.setAttribute('href', `https://api.whatsapp.com/send?text=${window.location.href}`); shareLink.setAttribute('target', "_blank"); } if (socialOption === "Twitter") { shareLink.setAttribute('href', `https://twitter.com/intent/tweet?url=${window.location.href}`); shareLink.setAttribute('target', "_blank"); } shareLink.append(icon, socialText); socialContainer.append(shareLink); document.querySelector(".share__modal").appendChild(socialContainer); //adding copy url functionality if(socialOption === "Copy Link") { shareLink.addEventListener("click", function() { var tempInput = document.createElement("input"); tempInput.value = window.location.href; document.body.appendChild(tempInput); tempInput.select(); tempInput.setSelectionRange(0, 99999); // For mobile devices document.execCommand('copy'); document.body.removeChild(tempInput); this.querySelector(".share__option-text").textContent = "Copied" }) } }); // document.querySelector(".hover__share-modal-container").addEventListener("mouseover", () => document.querySelector('[data-gfg-action="share-article"]').classList.add("hover_share_menu")); } function toggleLikeElementVisibility(selector, show) { document.querySelector(`.${selector}`).style.display = show ? "block" : "none"; } function closeKebabMenu(){ document.getElementById("myDropdown").classList.toggle("show"); }
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
  • Company
  • About Us
  • Legal
  • Privacy Policy
  • Contact Us
  • Advertise with us
  • GFG Corporate Solution
  • Campus Training Program
  • Explore
  • POTD
  • Job-A-Thon
  • Blogs
  • Nation Skill Up
  • Tutorials
  • Programming Languages
  • DSA
  • Web Technology
  • AI, ML & Data Science
  • DevOps
  • CS Core Subjects
  • Interview Preparation
  • Software and Tools
  • Courses
  • ML and Data Science
  • DSA and Placements
  • Web Development
  • Programming Languages
  • DevOps & Cloud
  • GATE
  • Trending Technologies
  • Videos
  • DSA
  • Python
  • Java
  • C++
  • Web Development
  • Data Science
  • CS Subjects
  • Preparation Corner
  • Interview Corner
  • Aptitude
  • Puzzles
  • GfG 160
  • System Design
@GeeksforGeeks, Sanchhaya Education Private Limited, All rights reserved
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