Je voudrais une manière plus pythonique pour la branche suivante si tout: existe un opérateur ternaire pour cela? P> P>
5 Réponses :
Utilisez un opérateur ternaire imbriqué.
a.append('value') if a<b else b.append('value') if a==b else None
Maintenant, vous me avez eu dans l'ambiance de golf [Func2, Func3, Func1] [CMP (A, B)] () Code>
Vous pouvez faire quelque chose comme ceci: où * _action convient au code "do STH" dans votre question p> p> p>
Tandis que et / ou code> -tricking Ça fonctionne, il le rend tout simplement beaucoup moins lisible imo.
@Atttilao. Je pense que Firsting est un adjectif de premier plan. La découpe courte et la logique est courante dans la plupart des langues ... et je suis fan :)
VOTRE
if a <= b:
(a,b)[a==b].append('value')
@curieuse. Ouais, et il les a considéré comme différents seulement. Regardez la réponse à nouveau clairement.
@Curious - Est-ce? Il fait n'importe quoi i> uniquement si a <= b code>. Ensuite, il fait deux choses différentes selon que a ou a == b code>. Cela fonctionne, c'est juste laid.
Pour votre EXACT EM>, l'un d'entre eux fonctionnera: [b, a, []][cmp(x, y)].append('value')
[b, a, []][cmp(x, y)] += ['value']
Ai-je commençais une sorte de compétition de golf?
Évidemment, vous pouvez simplement laisser l'affaire d'entier off
if a<b:
a.append('value')
elif a==b:
b.append('value')
C'est la seule amélioration réelle i>.
pythoniciennes i> amour b> Le mot pythonic i>, même quand cela ne veut rien dire.
Quel est le problème avec l'utilisation de 6 lignes?
C'est probablement le meilleur moyen de le faire si vos trois
do STH code> S sont très différents. S'ils peuvent être paramétrés, la branche pourrait être écrite plus concise. Dites-nous plus sur votredo STH code> s.@Gantthomes tandis que c'est un peu vrai, je l'utilise habituellement comme «conforme au plus de choses dans
importer ce code> ':)Du
[Lambda: A, Lambda: B, Lambda: C] [(A@eumiro je change la question de manière appropriée. Oui, le do STH est paramétré.
@Blender, peut être écrit plus concis en utilisant
CMP (A, B) code> :)Qu'est-ce que ça va? une fonction ou une affectation?
@gnibbler: maintenant ceci i> je vais utiliser. Merci!