Python - ¿Relación entre bibliotecas de diferentes variables?

   
Vista:

¿Relación entre bibliotecas de diferentes variables?

Publicado por Pablo García (1 intervención) el 04/08/2015 20:52:39
Hola, tengo dos dudas con las bibliotecas.

Tenemos este código:
Hemos creado dos variables; precios e inventario. Con dos bibliotecas con las mismas claves; banana, manzana...

precios = {'banana': 4, 'manzana': 2, 'naranja': 5, 'pera': 3}
inventario = {'banana': 6, 'manzana': 0, 'naranja': 8, 'pera': 7}

Creamos un for que recorre la biblioteca de la variable precios.

for x in precios:
# imprimimos la clave
print x
# imprimimos su valor
print "precios: ", precios[x]

Hasta aquí todo bien, ahora incluimos dentro de este for un print con la otra variable inventario.

for x in precios:
print x
print "precios: ", precios[x]
# imprimir el valor de la otra variable intervalo
print "inventario: ", inventario[x]

Mi primera pregunta,
¿Cómo puede la variable inventario, que no es llamada por la declaración for x in precios, funcionar?

Después hice unas pruebas,
Creé una nueva variable a con unas claves diferentes respecto de precio e intervalo.
Creé un for pasando la variable a (for x in a), dentro de este for a la variable inventario. No funcionó.
Aunque, si escribo las mismas claves de la biblioteca precio e intervalo (banana, manzana...) en la variable a. Funciona.

precios = {'banana': 4, 'manzana': 2, 'naranja': 5, 'pera': 3}
inventario = {'banana': 6, 'manzana': 0, 'naranja': 8, 'pera': 7}
a = {'claveUno': 11, 'claveDos': 22}
# a = {'banana': 1, 'manzana': 1, 'naranja': 1, 'pera': 1}

for x in a:
print x
print "precios: ", a[x]
print "inventario: ", inventario[x]

Mi segunda pregunta,
¿Porqué las bibliotecas actúan como si fuesen una variable sola siendo dos variables diferentes?

--

Este es todo el código junto:

El que entiendo

precios = {'banana': 4, 'manzana': 2, 'naranja': 5, 'pera': 3}

for x in precios:
# imprimimos la clave
print x
# imprimimos su valor
print "precios: ", precios[x]

El que no entiendo

precios = {'banana': 4, 'manzana': 2, 'naranja': 5, 'pera': 3}
inventario = {'banana': 6, 'manzana': 0, 'naranja': 8, 'pera': 7}
a = {'claveUno': 11, 'claveDos': 22}
# a = {'banana': 1, 'manzana': 1, 'naranja': 1, 'pera': 1}

for x in a:
print x
print "precios: ", a[x]
print "inventario: ", inventario[x]

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

¿Relación entre bibliotecas de diferentes variables?

Publicado por xve (1237 intervenciones) el 05/08/2015 08:39:44
Hola Pablo, trato de explicártelo...

Al hacer este bucle:
1
for x in precios:
Lo que haces, es que x tiene el valor de la key del diccionario, es decir, vale en la primera pasad del bucle: banana
Si te fijas, también existe banana en el diccionario: inventario

Por lo que si yo hago
1
print inventario["banana"]
funcionara correctamente!!!

Te funciona porque los dos diccionarios tienen exactamente las mismas claves.


No se si me he sabido explicar... coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar