¿Cómo dividir la lista y pasarlos como parámetro separado?

Mi problema es que tengo valores en una lista. Y quiero separar estos valores y enviarlos como un parámetro separado.

Mi código es:

def egg(): return "egg" def egg2(arg1, arg2): print arg1 print arg2 argList = ["egg1", "egg2"] arg = ', '.join(argList) egg2(arg.split()) 

Esta línea de código (egg2(arg.split())) no funciona, pero quería saber si es posible llamar a alguna función incorporada que separará los valores de la lista y, por lo tanto, podemos enviarlos como dos diferentes. parámetros Similar a egg2(argList[0], argList[1]) , pero debe hacerse de forma dinámica, de modo que no tenga que escribir explícitamente los argumentos de la lista.

 >>> argList = ["egg1", "egg2"] >>> egg2(*argList) egg1 egg2 

Puede usar * args (argumentos) y ** kwargs (para argumentos de palabras clave) al llamar a una función. Echa un vistazo a este blog sobre cómo usarlo correctamente.

Hay una syntax especial para desempaquetar argumentos :

 egg2(*argList) 

Quizás hay mejores formas, pero puedes hacer:

 argList = ["egg1", "egg2"] (a, b) = tuple(argList) egg2(a, b) 

arg.split() no divide la lista de la forma deseada porque el separador predeterminado no coincide con el suyo:

 In [3]: arg Out[3]: 'egg1, egg2' In [4]: arg.split() Out[4]: ['egg1,', 'egg2'] In [5]: arg.split(', ') Out[5]: ['egg1', 'egg2'] 

De los documentos (énfasis agregado):

Si sep no se especifica o es None , se aplica un algoritmo de división diferente: las ejecuciones de espacios en blanco consecutivos se consideran como un solo separador , y el resultado no contendrá cadenas vacías al principio o al final si la cadena tiene espacios en blanco iniciales o finales.