estoy intrigado por la siguiente expresión Python:¿Qué significa `**` en la expresión `dict (d1, ** d2)`?
d3 = dict(d1, **d2)
La tarea consiste en fusionar los diccionarios 2 en una tercera, y la expresión anterior lleva a cabo la tarea muy bien. Estoy interesado en el operador ** y qué está haciendo exactamente con la expresión. Pensé que ** era el operador de energía y aún no lo había visto en el contexto anterior.
El fragmento de código completo es el siguiente:
>>> d1 = {'a': 1, 'b': 2}
>>> d2 = {'c': 3, 'd': 4}
>>> d3 = dict(d1, **d2)
>>> print d3
{'a': 1, 'c': 3, 'b': 2, 'd': 4}
Cabe señalar que GvR piensa que esta expresión es [despreciable] (http://mail.python.org/pipermail/python-dev/2010-April/099459.html) – elhefe
Esto solo funciona si las claves en ' d2' son cadenas, al menos en Python 3. – nobar
Oh, genial, no me di cuenta de que funcionaría en absoluto en Python 2. Supongo que esa es la ventaja de 'dict (d1, ** d2)' over 'dict (** d1, ** d2) 'o' {d1, ** d2} 'o' {** d1, ** d2} '-it funciona en Python 2. Creo que la última es la sintaxis preferida en Python 3 , porque es conciso y consistente. Pero es bueno saber que hay una forma de hacerlo en Python 2, al menos con claves de cadena, incluso si se ve un poco hackish. –