[Python-es] Re: Aniadir mas de un elemento a un diccionario a la vez
Chema Cortés
chemacortes en wanadoo.es
Mar Jul 23 04:12:09 CEST 2002
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
El Lun 22 Jul 2002 21:00, Hernan Martinez Foffani escribió:
> otra aproximación al problema:
> >>> dic_1 = {'a':3, 'b':33}
> >>> dic_2 = {'c':4, 'd':404}
> >>> lista = dic_1.items()
> >>> lista.extend(dic_2.items())
> >>> nuevo = dict(lista)
> >>> nuevo
>
> {'a': 3, 'c': 4, 'b': 33, 'd': 404}
Existe un pequeño problema cuando ambos diccionarios tengan claves comunes. No
queda claro, al invocar el constructor del dict, qué pasaría en estos casos.
He hecho la prueba, y no me da error. Las claves comunes cogen el último
valor que tenga el item en la lista:
>>> d1={'a':1,'b',2}
>>> d2={'b':3,'c':4}
>>> dict(d1.items()+d2.items())
{'a': 1, 'c': 4, 'b': 3}
>>> dict(d2.items()+d1.items())
{'a': 1, 'c': 4, 'b': 2}
Utilizando un bucle controlas mejor qué valor se coge cuando hay claves
duplicadas.
Pero lo mejor es utilizar el método "update":
>>> d1.update(d2)
>>> d1
{'a': 1, 'c': 4, 'b': 3}
Saludos,
- --
Chema Cortes (chemacortes en wanadoo.es) | LinuxUser#142755 - SuSE Linux 8.0
ZARALINUX http://www.zaralinux.org | "La ignorancia se apodera de quien
PYTANDO http://pytando.sf.net | se contenta con lo que sabe"
PGPKEY: mailto:chemacortes en wanadoo.es?subject=__PGPKEY__
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org
iD8DBQE9PLt5HLTQrABk8H0RAtxzAKDJQj8bXDUMlgFUc2m8fI1BkKP3+wCdGElQ
IAWs3rX9q/QzCTFKSMSDbu0=
=RS6P
-----END PGP SIGNATURE-----
Más información sobre la lista de distribución Python-es