web-dev-qa-db-fra.com

Ignorer les éléments sur une condition basée sur une compréhension de liste en python

J'ai une liste Liste:

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

Pour les nombres inférieurs à zéro (0) dans la liste, je voudrais ignorer ces nombres et former une autre liste.

Exemple:-

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

C'est une sorte de doute que j'ai, je ne sais pas si nous pouvons y arriver. Si c'est possible, quelqu'un peut-il poster ici.

11
Vinodh Velumayil

Vous disposez de nombreuses options pour y parvenir. Avec un compréhension de la liste vous pouvez faire:

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

Avec filter() :

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

Remarque:

Dans Python 3, filter() renvoie un objet filter (pas list), pour le convertir en liste, vous pouvez faire:

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

Utilisez d'abord les minuscules pour les noms de variables, ensuite n'utilisez pas list car il a réservé le nom.

Ensuite, faites un si à l'intérieur de la liste de compréhension

my_list = [i for i in init_list if i >= 0 ]
6
Saksow