OVH Cloud OVH Cloud

lambda plusieurs arguments

2 réponses
Avatar
Mihamina (R12y) Rakotomandimby
Bonjour,
Quelle serait la façon propre de définir et utiliser une lambda function
avec plusieurs arguments?
Moi j'ai ceci:

In [28]: s=lambda (x,z):x+z+3
In [29]: s((2,3))

Out[29]: 8

Mais je trouve les double parenthèses laides.
Y a t il un autre moyen?

2 réponses

Avatar
Amaury Forgeot d'Arc
Bonjour,
Quelle serait la façon propre de définir et utiliser une lambda function
avec plusieurs arguments?
Moi j'ai ceci:

In [28]: s=lambda (x,z):x+z+3
In [29]: s((2,3))

Out[29]: 8

Mais je trouve les double parenthèses laides.
Y a t il un autre moyen?


En principe, on ne met pas de parenthèses après le mot "lambda"!
s=lambda x,z: x+z+3
s(2,3)

Ce que tu avais écrit est l'équivalent de:
def s((x,z)):
return x+z+3
C'est à dire une fonction qui prend UN argument: un tuple à deux
éléments ! (et cette syntaxe a été supprimée dans python 3.0)

--
Amaury

Avatar
Mihamina (R12y) Rakotomandimby
Amaury Forgeot d'Arc wrote:
En principe, on ne met pas de parenthèses après le mot "lambda"!


Effectivement. Il était tard... comme quoi il faut travailler avec les
idées claires.