Me gustaría tener la siguiente construcción en mi código:
def target_function(*args, key=value, key2=value2, key3=value3, key4=value4):
print(*args)
def function_prepending_arguments(*args, key4=value4):
target_function(["a", "b", "c"] + *args, key4=key4) # does not work, *args is a tuple
Para function_prepending_arguments(["c", "d", "e"], key4="dummy")
espero ver ['a', 'b', 'c', 'd', 'e']
en mi salida.
¿Cómo puedo lograr esto (de la manera más pitónica, si es posible)?
3 respuestas
El problema es que no puedes concatenar la lista y la tupla. Entonces, solo pasa ('a', 'b', 'c') + args
. O ['a', 'b', 'c'] + list(args)
Lo que funcionó para mí fue
def function_prepending_arguments(*args, key=value):
target_function(['a', 'b', 'c'] + list(*args), key=key)
Gracias a blue_note por empujarme en la dirección correcta.
Una mejor manera sería
x = [1,2,3]
# y = tuple/generator/list
y = (4,5,6)
x.extend(y) # won't return anything.
Preguntas relacionadas
Nuevas preguntas
python
Python es un lenguaje de programación multipropósito, de tipificación dinámica y de múltiples paradigmas. Está diseñado para ser rápido de aprender, comprender y usar, y hacer cumplir una sintaxis limpia y uniforme. Tenga en cuenta que Python 2 está oficialmente fuera de soporte a partir del 01-01-2020. Aún así, para preguntas de Python específicas de la versión, agregue la etiqueta [python-2.7] o [python-3.x]. Cuando utilice una variante de Python (por ejemplo, Jython, PyPy) o una biblioteca (por ejemplo, Pandas y NumPy), inclúyala en las etiquetas.