Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 30909
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 10, 20262026-05-10T13:31:18+00:00 2026-05-10T13:31:18+00:00

When I am writing code in Python, I often need to remove items from

  • 0

When I am writing code in Python, I often need to remove items from a list or other sequence type based on some criteria. I haven’t found a solution that is elegant and efficient, as removing items from a list you are currently iterating through is bad. For example, you can’t do this:

for name in names:     if name[-5:] == 'Smith':         names.remove(name) 

I usually end up doing something like this:

toremove = [] for name in names:     if name[-5:] == 'Smith':         toremove.append(name) for name in toremove:     names.remove(name) del toremove 

This is innefficient, fairly ugly and possibly buggy (how does it handle multiple ‘John Smith’ entries?). Does anyone have a more elegant solution, or at least a more efficient one?

How about one that works with dictionaries?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. 2026-05-10T13:31:19+00:00Added an answer on May 10, 2026 at 1:31 pm

    Two easy ways to accomplish just the filtering are:

    1. Using filter:

      names = filter(lambda name: name[-5:] != 'Smith', names)

    2. Using list comprehensions:

      names = [name for name in names if name[-5:] != 'Smith']

    Note that both cases keep the values for which the predicate function evaluates to True, so you have to reverse the logic (i.e. you say ‘keep the people who do not have the last name Smith’ instead of ‘remove the people who have the last name Smith’).

    Edit Funny… two people individually posted both of the answers I suggested as I was posting mine.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Ask A Question

Stats

  • Questions 119k
  • Answers 119k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer That's fairly odd. I haven't seen a bug like that… May 11, 2026 at 11:46 pm
  • Editorial Team
    Editorial Team added an answer As I was writing up the below I realised something… May 11, 2026 at 11:46 pm
  • Editorial Team
    Editorial Team added an answer This thread on SO will probably help you decide: What… May 11, 2026 at 11:46 pm

Related Questions

In class we are doing sorting algorithms and, although I understand them fine when
Refering to a previously asked question , I would like to know how to
I'm coding the menu for an application I'm writing in python, using wxPython libraries
I'm in the process of trying to migrate my ASPNET site to Django. All

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.