Python Python Collections Lists Removing items from a list

Coding Challenge

can some help me how to solve this one? hallenge Task 2 of 2 Great! Now use .remove() and/or del to remove the string, the boolean, and the list from inside of messy_list. When you're done, messy_list should have only integers in it.

Thanks.

lists.py
messy_list = ["a", 2, 3, 1, False, [1, 2, 3]]

# Your code goes below here
messy_list.insert(0,messy_list.pop(3))

1 Answer

Steven Parker
Steven Parker
168,395 Points

There are several valid approaches to this step. The "brute force" way is to just to delete (del) the items you don't want by directly referencing them using an index number. A more elegant way might be to create a loop that removes items based on their type. Either way will work when correctly implemented.

Decide on a method, give it a shot, and post your code if you have any trouble with it.

Hello... would you share your answer version. Thanks

messy_list_2 = messy_list.copy()
for item in messy_list_2:
    if type(item) != type(1):
        messy_list.remove(item)
Steven Parker
Steven Parker
168,395 Points

I might do a slightly more compact version of the same thing:

for item in messy_list.copy():
    if type(item) != int:
        messy_list.remove(item)

But what I'd really do (though you may not have covered list comprehensions yet) would be this:

messy_list = [ n for n in messy_list if type(n)==int ]

If the original question has been answered, you can mark it solved by choosing a "best answer".
And happy coding!