Python Python Collections (2016, retired 2019) Lists Removing items from a list

Alex Pavlushkin
Alex Pavlushkin
5,807 Points

Hi! I have trouble with excluding boolean items from a list. How can I handle with it elegantly?

I tried to add an additional condition in a try section, however, it seems that the second condition in try section overrides the first one.

lists.py
messy_list = ["a", 2, 3, 1, False, [1, 2, 3]]
moving_item = messy_list.pop(3)
messy_list.insert(0, moving_item)
for item in messy_list:
    try:
        item + 1
      #  isinstance(item, not bool)
    except TypeError:
            messy_list.remove(item)
print(messy_list)

1 Answer

Steven Parker
Steven Parker
172,328 Points

You seem to have the right idea, but you have a few implementation issues:

  • you won't need "try/except", a simple "if" will do
  • "type" will give you a more specific test than "isinstance"
  • never modify an active iterable, loop using a copy of the iterable
  • you won't need to "print" anything