Search code examples
pythonpython-2.7listpython-3.xlist-comprehension

Skip elements on a condition based in a list comprehension in python


I have a list List:

List = [-2,9,4,-6,7,0,1,-4]

For numbers less than zero (0) in the list , I would like to skip those numbers and form another list.

Example:-

List = [9,4,7,0,1]

This is a kind of doubt I have, not sure If we can achieve. If it's possible to achieve, can anyone please post here.


Solution

  • You have many options to achieve that. With a list comprehension you can do:

    my_list = [i for i in my_list if i >= 0]
    

    With filter():

    my_list = filter(lambda i: i >= 0, my_list)
    

    Note:

    In Python 3, filter() returns a filter object (not list), to convert it to a list, you can do:

    my_list = list(filter(lambda i: i >= 0, my_list))