Python >> Tutoriel Python >  >> Python

Python Ternaire Lambda

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 ou .
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 ?