Assez simple mais je ne trouve pas un exemple décent; donc j'ai demandé ici!Python() avec des cas
En fait ce que je WAS, = carte de résultats (si> 0: faites cela, le reste: ce faire, listOfNumbers)
Comment puis-je faire cela?
Assez simple mais je ne trouve pas un exemple décent; donc j'ai demandé ici!Python() avec des cas
En fait ce que je WAS, = carte de résultats (si> 0: faites cela, le reste: ce faire, listOfNumbers)
Comment puis-je faire cela?
Utilisez une fonction lambda
(docs). J'ai utilisé les fonctions d'espace réservé foo()
et bar()
que vous devrez remplacer par vos bits "faire ceci". Une alternative, qui, comme dit légitimement @hop est la méthode préférée en Python, est d'utiliser une compréhension de liste. Cela n'a même pas besoin de l'utilisation d'une fonction lambda
.
resultList = [foo(x) if x > 0 else bar(x) for x in listOfNumbers)
resultList = [foo(x) if x > 0 else bar(x) for x in listOfNumbers]
La réponse est simple: NE PAS CE.
Vraiment. Soyez amical avec ceux qui doivent lire le code après vous. Ecrivez-le en quelques lignes, comme ça:
def choose_value(x):
if x > 0:
return blah(x)
return minor(x)
results = map(choose_value, list_of_numbers)
Ceci est beaucoup plus lisible et réutilisable à mon goût.
Aigh. La compréhension de la liste me semble assez explicite. – evadeflow
une compréhension de liste ou une expression de générateur est préférable de nos jours – hop
@hop Vous avez raison, édité dedans, merci. – marcog
selon les directives je prends l'habitude d'attendre 2 jours pour accepter des réponses, et par votre talent vous n'étiez pas dans le besoin désespéré de points immédiats! : D Cheers – Bolster