Есть ли синтаксис, который позволяет вам развернуть список в аргументы вызова функции?
Пример:
# Trivial example function, not meant to do anything useful.
def foo(x,y,z):
return "%d, %d, %d" %(x,y,z)
# List of values that I want to pass into foo.
values = [1,2,3]
# I want to do something like this, and get the result "1, 2, 3":
foo( values.howDoYouExpandMe() )
Ответ 1
Он существует, но его трудно найти. Я думаю, что большинство людей называют это оператором splat.
Это в документации как " Распаковка списков аргументов".
Вы бы использовали его следующим образом: foo(*values)
. Там также один для словарей:
d = {'a': 1, 'b': 2}
def foo(a, b):
pass
foo(**d)
Ответ 2
Вы должны использовать оператор *, например foo(*values)
Считать список python doc .
Кроме того, прочитайте следующее: http://www.saltycrane.com/blog/2008/01/how-to-use-args-and-kwargs-in-python/
def foo(x,y,z):
return "%d, %d, %d" % (x,y,z)
values = [1,2,3]
# the solution.
foo(*values)
Ответ 3
Попробуйте следующее:
foo(*values)
Это можно найти в документах Python как Распаковать списки аргументов.
Ответ 4
Это можно сделать с помощью
foo(*values)