Подтвердить что ты не робот

Как извлечь параметры из списка и передать их вызову функции

Каков хороший, короткий способ извлечь элементы из списка и передать их в качестве параметров вызова функции, например, в приведенном ниже примере?

Пример:

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

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

add(magic_function(x))
4b9b3361

Ответ 1

Вы можете распаковать кортеж или список в позиционные аргументы, используя звездочку.

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

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

Аналогично, вы можете использовать двойную звезду, чтобы распаковать аргумент dict в аргументы ключевого слова.

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

Ответ 2

Я думаю, вы имеете в виду оператор * распаковки:

>>> 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

Ответ 3

Используйте оператор *. Поэтому add(*x) будет делать то, что вы хотите.

Для получения дополнительной информации см. этот другой SO question.