Как извлечь параметры из списка и передать их в вызов функции
Что такое хороший, краткий способ извлечь элементы из списка и передать их в качестве параметров для вызова функции, как в примере ниже?
Пример:
def add(a,b,c,d,e):
print(a,b,c,d,e)
x=(1,2,3,4,5)
add(magic_function(x))
3 ответа
Решение
Вы можете распаковать кортеж или список в позиционные аргументы, используя звездочку.
def add(a, b, c):
print(a, b, c)
x = (1, 2, 3)
add(*x)
Точно так же вы можете использовать двойную звездочку для распаковки слова в аргументы ключевого слова.
x = { 'a': 3, 'b': 1, 'c': 2 }
add(**x)
Я думаю, что вы имеете в виду *
Оператор распаковки:
>>> 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
Использовать *
оператор. Так add(*x)
будет делать то, что вы хотите.
Смотрите этот другой вопрос SO для получения дополнительной информации.