web-dev-qa-db-fra.com

Comment extraire des paramètres d'une liste et les passer à un appel de fonction

Quelle est une bonne et brève façon d'extraire des éléments d'une liste et de les passer en tant que paramètres à un appel de fonction, comme dans l'exemple ci-dessous?

Exemple:

def add(a,b,c,d,e):
    print(a,b,c,d,e)

x=(1,2,3,4,5)

add(magic_function(x))
43
falek.marcin

Vous pouvez décompresser un tuple ou une liste en arguments positionnels à l'aide d'une étoile.

def add(a, b, c):
    print(a, b, c)

x = (1, 2, 3)
add(*x)

De même, vous pouvez utiliser une double étoile pour décompresser un dict en arguments de mots clés.

x = { 'a': 3, 'b': 1, 'c': 2 }
add(**x) 
67
Cat Plus Plus

Je pense que tu veux dire le *opérateur de déballage :

>>> l = [1,2,3,4,5]
>>> def add(a,b,c,d,e):
...    print(a,b,c,d,e)
...
>>> add(*l)
1 2 3 4 5
11
Tim Pietzcker

Utilisez l'opérateur *. Donc, add(*x) ferait ce que vous voulez.

Voir cet autre SO question pour plus d'informations.

5
arunkumar