0
votes

Renvoyer des éléments d'une liste si égale à une condition

J'ai la liste de la forme A = [[AAA, 1,0], [ABA, 1,2], [ACA, 0,3], ...] . En utilisant une compréhension de la liste, j'aimerais composer une nouvelle liste si le deuxième élément d'une ligne est égal à laisse dire 1. Pour l'instant b = [x [1] == 1 pour x dans x dans a]] retourne un booléen true faux mais je veux que ces index une nouvelle liste.


2 commentaires

Utilisez donc un Expression conditionnelle à la place?


Vous créez une compréhension de liste WRON - vous devez utiliser si à l'intérieur.


4 Réponses :


1
votes

Essayez ceci:

b = filter(lambda i: i[1]==1, a)


0 commentaires

2
votes

Essayez: xxx

ou vous pouvez utiliser filtre qui renvoie un itérateur: xxx


0 commentaires

1
votes

Je suppose que c'est la syntaxe que vous recherchez: xxx


0 commentaires

1
votes
b = [item for i,item in enumerate(a) if a[i][1]==1]

0 commentaires