Python - Listas como valor en un diccionario

   
Vista:

Listas como valor en un diccionario

Publicado por avc (4 intervenciones) el 09/05/2013 09:25:52
Muy buenas,

Estoy empezando a usar python poco a poco (programo con frecuencia en otros lenguajes) y me ha surgido una duda: quiero usar un diccionario cuyos valores sean listas. Aquí os pego el código:

nom_ana = [] # lista de nombres de puntos analogicos
nom_dig = [] # lista de nombres de puntos digitales
nombres = {"A":nom_ana, "D":nom_dig} # Diccionario de nombres


El caso es que si actualizo la lista nom_ana y hago una consulta al diccionario (es decir, nombres["A"] ), el valor que devuelve es una lista vacía. Es decir, es como si no estuvieran enlazados nom_ana como lista y nom_ana como valor de la clave "A" del diccionario.

¿Me podéis explicar por qué? ¿Se podría hacer de alguna forma?

Muchas 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

Listas como valor en un diccionario

Publicado por xve (1235 intervenciones) el 09/05/2013 11:36:24
Hola avc, la verdad es que lo que estas haciendo no tiene mucho sentido a mi modo de ver... intento explicarme...

Si queres trabajar con un diccionario el qual contenga listas, porque usas una lista externa? porque cuando modifiques la lista, no la modificas directamente dentro del diccionario?

Yo lo aria así:
nombres = {"A":[], "D":[]} # Diccionario de nombres

y trabajaría siempre ahí directamente, en la lista que esta dentro del diccionario.


El problema que tu te encuentras, es que cuando defines el diccionario, las listas no tiene valores, y por eso queda vació aunque la lista varié su contenido...
1
2
3
4
a=10
b=a
a=20
print b => devolvera 10


No se si me he explicado bien... 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

Listas como valor en un diccionario

Publicado por avc (4 intervenciones) el 09/05/2013 12:31:40
Buenas xve! Gracias por contestar. Sí, te has explicado perfectamente, y lo que me sugieres me parece una buena opción...

Por aclararme yo mejor: digamos, entonces, que el valor de diccionario es un *valor* y no una *referencia* a un objeto, ¿no? ¿Existe el *paso por valor* y *paso por referencia* en python? Como ves, ando pez con este lenguaje, y entendía que la asignación del valor de la clave "A" era una referencia a un objeto...

Ahora el que puede no haberse explicado bien soy yo, que si valor aquí y allí,...

Gracias otra vez!
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
Imágen de perfil de xve

Listas como valor en un diccionario

Publicado por xve (1235 intervenciones) el 09/05/2013 20:22:51
Hola avc, si que te has explicado bien...;)

La verdad, no se si hay la manera de pasar la variables por referencia... que yo sepa, siempre se pasa por valor...

Voy a ver si averiguo algo al respecto y te comento...

Un saludo
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