Construyendo diccionarios (Era: Recuperando valores de diccionarios.)
Luis Rodrigo Gallardo Cruz
rodrigo en nul-unu.com
Vie Jul 2 17:36:56 CEST 2004
On Fri, Jul 02, 2004 at 05:17:59PM +0200, Víctor Peinado wrote:
> ¿como puedo construir diccionarios multidimensionales "on the
> fly", utilizando como claves cadenas que extraigo de un fichero? Me explico:
> ...
> ...
> for linea in file('usuarios.txt'):
> # separo los datos que me interesan
> campos = linea.split()
> usuario, sistema = campos[0], campos[1]
>
> if usuario in datos:
> # ya "he visto" a este usuario
> # código, código
> else:
> # es la primera vez que este usuario utiliza este sistema
> datos[usuario][sistema] = 1 # casca aquí
> En la penúltima línea me salta un: KeyError: 'pepito'.
Estas pensando en Perl.
Como estas en el 'else' datos[usuario] no existe. En perl la expresión
datos[usuario][sistema] le dice al interprete que quieres usar esa
clave y que el contenido debe ser un diccionario, así que lo crea
inmediatamente. Python no hace cosas si no se las pides
explícitamente, por lo que tienes que hacer algo como
datos[usuario] = {} # Crea la entrada usuario y asignale un hash
datos[usuario][sistema] = 1 # Crea la entrada sistema en ese hash
--
Rodrigo Gallardo
PGP Key ID: ADC9BC28
Fingerprint: 7C81 E60C 442E 8FBC D975 2F49 0199 8318 ADC9 BC28
------------ 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