List2Dict

Josu Oyanguren josu en ubera.net
Mar Ene 18 19:44:36 CET 2005


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Si quieres descartar los elementos que no tenga ':'

dict([elem.split(":",1) for elem in lista if ':' in elem])

(teniendo en cuenta que 'a:b:c'.split(':', 1) -> ['a', 'b:c'])

si lo que quieres es añadirlos, pero que no tengan valor (None)

dict([(elem.split(":", 1) + [None])[:2] for elem in lista])


|>> lista = ["a:1","b:2","c:3","d:4","e:5", "f"]
|>> dict([elem.split(":",1) for elem in lista if ':' in elem])
{'a': '1', 'c': '3', 'b': '2', 'e': '5', 'd': '4'}
|>> dict([(elem.split(":", 1) + [None])[:2] for elem in lista])
{'a': '1', 'c': '3', 'b': '2', 'e': '5', 'd': '4', 'f': None}



Catalin Lungu escribió:
| Hola,
| Hay alguna forma de convertir una lista en diccionario de la siguiente
forma, pero también tratando los errores.
|
| lista = ["a:1","b:2","c:3","d:4","e:5"]
| dict([(elem.split(":")[0], elem.split(":")[1]) for elem in lista])
|
| Si por ej. añado un elemento a la lista que no contenga los ":", al
hacer elem.split(":")[1] me da error. Lo puedo controlar de alguna forma
y que la instrucción se quede en 1 sola línea.
|
| Saludos,
| Catalin
| _______________________________________________
| Python-es mailing list
| Python-es en aditel.org
| http://listas.aditel.org/listinfo/python-es
|
|


- --



-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFB7VkU5ju4HVxhuqQRApl+AJ9FjDpQyQrlWzb0Tx4H9sW30iktMQCdHQW+
nks/4dHi5ox0CJBpmU2XP9w=
=rSV1
-----END PGP SIGNATURE-----
------------ próxima parte ------------
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es


Más información sobre la lista de distribución Python-es