passing pass parameter python list argument-passing

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