¿Descomprimir una lista en Python?


222

Creo que "descomprimir" 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 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'al pie?

Respuestas:



32

Sí, puede usar la *argssintaxis (splat):

function_that_needs_strings(*my_list)

donde my_listpuede ser iterable; Python recorrerá el objeto dado y usará cada elemento como un argumento separado para la función.

Consulte la documentación de la expresión de llamada .

También hay un parámetro equivalente de palabra clave, que usa dos estrellas:

kwargs = {'foo': 'bar', 'spam': 'ham'}
f(**kwargs)

y hay una sintaxis equivalente para especificar argumentos generales en una firma de función:

def func(*args, **kw):
    # args now holds positional arguments, kw keyword arguments

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.