Bonjour,
soit les deux listes suivantes :
Je souhaite extraire les éléments de b pour lesquels a est positif.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 a = [0,0,1,0,1,0] b = [1,2,3,4,5,6]
Autrement dit avoir in fine la liste [3,5]
Ceci ne marche pas :
En rusant un peu, je me dépatouille avec ce code là qui donne bien le résultat escompté :
Code : Sélectionner tout - Visualiser dans une fenêtre à part c = [v for v in b if a>0]
Néanmoins, je ne suis pas sûr que ça soit très propre... Y'a-t'il plus "pythonic" comme solution ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part c = [v for (n,v) in enumerate(b) if a[n]>0]
Idéalement j'aimerais rester en python pur mais s'il existe une solution élégante avec un module, je suis preneur !
Par exemple, j'avais pensé à numpy mais np.where() ne donne pas ce que je souhaite. Il me semble que np.where renverra toujours un vecteur de la même taille que ses arguments...
Merci d'avance pour vos retours éclairés
Code : Sélectionner tout - Visualiser dans une fenêtre à part np.where(np.array(a)>0, b, None)
D.
Partager