parameter - python pass by reference
Desempaquetar una lista en Python? (3)
Desde Python 3.5 puede descomprimir una cantidad ilimitada de list
.
PEP 448: generalizaciones de desempaquetado adicionales
Entonces esto funcionará
a = [''1'', ''2'', ''3'', ''4'']
b = [''5'', ''6'']
function_that_needs_strings(*a, *b)
Creo que ''desempaquetar'' podría ser el vocabulario incorrecto aquí, disculpas porque estoy seguro de que esta es una pregunta duplicada.
Mi pregunta es bastante simple: en una función que espera una lista de elementos, ¿cómo puedo pasar un elemento de la lista de Python sin obtener un error?
my_list = [''red'', ''blue'', ''orange'']
function_that_needs_strings(''red'', ''blue'', ''orange'') # works!
function_that_needs_strings(my_list) # breaks!
Seguramente debe haber una manera de expandir la lista, y pasar la función ''red'',''blue'',''orange''
en el casco?
Sí, puedes usar la sintaxis *args
(splat):
function_that_needs_strings(*my_list)
donde my_list
puede ser iterable; Python recorrerá el objeto dado y usará cada elemento como un argumento separado para la función.
Ver la documentación de la expresión de llamada .
También hay una palabra clave-parámetro equivalente, usando dos estrellas:
kwargs = {''foo'': ''bar'', ''spam'': ''ham''}
f(**kwargs)
y hay una sintaxis equivalente para especificar argumentos catch-all en una firma de función:
def func(*args, **kw):
# args now holds positional arguments, kw keyword arguments
function_that_needs_strings(*my_list) # works!