Problème :Comment écrire l'opérateur ternaire dans une fonction lambda ?
Exemple :Supposons que vous ayez l'exemple suivant :
def f(x): if x > 100: x = 1.1*x else: x = 1.05*x return x print(f(100)) # 105.0
La fonction f(x)
prend un argument x
et l'augmente de 10 % si l'argument est supérieur à 100. Sinon, il l'augmente de 5 %.
Dans cet article, vous apprendrez à convertir cet extrait de code en Python One-Liner en utilisant l'opérateur Ternary, alors restez à l'écoute !
Mais tout d'abord :nous commençons par une brève explication de l'opérateur ternaire et de la fonction lambda. Si vous connaissez déjà très bien ces concepts Python, vous pouvez les ignorer et passer directement à la solution.
Bref récapitulatif :opérateur ternaire
Opérateur ternaire :L'opérateur ternaire le plus basique x if c else y
se compose de trois opérandes x
, c
, et y
. C'est une expression avec une valeur de retour. L'opérateur ternaire renvoie x
si l'expression booléenne c
évalue à True
. Sinon, si l'expression c
évalue à False
, l'opérateur ternaire renvoie l'alternative y
.
Syntaxe :Les trois opérandes s'écrivent sous la forme x if c else y
qui se lit comme "retour x
si c
sinon renvoie y
“. Écrivons cela plus intuitivement comme :
<OnTrue> if <Condition> else <OnFalse>
Opérande | Description |
---|---|
L'expression de retour de l'opérateur si la condition est évaluée à True | |
<État> | La condition qui détermine s'il faut retourner la branche |
L'expression de retour de l'opérateur si la condition est évaluée à False |
Article connexe :Pour un tutoriel complet sur l'opérateur ternaire, consultez notre article de blog détaillé.
Bref récapitulatif :fonction Lambda
Une fonction lambda est une fonction anonyme en Python. Il commence par le mot-clé lambda
, suivi d'une liste de zéro ou plusieurs arguments séparés par des virgules, suivis des deux-points et de l'expression de retour. Par exemple, lambda x, y, z: x+y+z
calculerait la somme des trois valeurs d'argument x+y+z
.
Voici un exemple pratique où les fonctions lambda sont utilisées pour générer une fonction d'incrémentation :
Exercice :Ajoutez un autre paramètre à la fonction lambda !
Regardez la vidéo ou lisez l'article pour en savoir plus sur les fonctions lambda en Python :
Maintenant, vous savez tout ce que vous devez savoir pour raccourcir l'extrait de code ci-dessus !
Méthode :Utilisation de l'opérateur ternaire dans une fonction Lambda
Il s'avère que vous pouvez également utiliser efficacement l'opérateur ternaire :
f = lambda x: 1.1*x if x>100 else 1.05*x print(f(100)) # 105.0
Le résultat est le même. Un codeur Python intermédiaire à avancé n'aura aucun problème à comprendre le code et il est beaucoup plus concis. C'est pourquoi je préférerais cette méthode à la première.
Voici une comparaison directe des deux méthodes. Lequel préférez-vous ?
Essayez vous-même :
Exercice : Avant d'exécuter le code, essayez de deviner :quelle est la sortie de ce puzzle de code ?