Python versus Ruby, épisode 157895513 : https://social.imirhil.fr/media/eNvQKC_WgU0lVogGI4s
@aeris
Wut ?
Python:
>>> [ i*-1 if i else None for i in [None,1,2] ]
[None, -1, -2]
@aeris
Au zut, déjà répondu par d'autres.
@bigduke @sebsauvage Les lambda ne supportent pas le multiligne. Ça peut vite devenir la merde…
@bigduke De manière générale, j’suis vite fucked en python et obligé d’écrire du code de 40.000km de long, blindé de variables/fonctions dont je n’ai pas besoin…
Par exemple en ruby, je ferais un truc comme ça plutôt pour éviter le one-liner tout en conservant de la lisibilité. Faire ça en python, via les CL tu vas juste pleurer (CL dans une CL, test complexe à faire rentrer dans une CL…). https://social.imirhil.fr/media/PUokDnsE0yKTwFYf11I
X = [None,1,2,3]
MULTIPLY = lambda x,n : [ (1-xi%2)*0.5*xi + (xi%2)*n*xi if xi not in [None,inf] else xi for xi in x]
res = array( MULTIPLY(X,-1) )
res = res[res>-0.5]
il faut numpy.array par contre.
@aeris ah je sais pas ce que tu veux en faire. mais c'est aussi concis que l'exemple ruby et réutilisable. #justicePourPython :P