[Python-es] Manejar diccionarios dentro de listas

9 views
Skip to first unread message

cheis

unread,
Dec 19, 2015, 9:42:58 PM12/19/15
to pyth...@python.org
Hola lista
Tengo el siguiente programa en python

diccionario= {'alfa' : 'AAAAA' , 'beta' : 'BBBBB', 'omega': 'CCCCC' }

aList = []
aList.append( diccionario );
aList.append( diccionario );
aList.append( diccionario );
aList.append( diccionario );
aList.append( diccionario );

aList[1]['alfa'] = "pruebusqui"
print (aList[:])



La linea :

aList[1]['alfa'] = "pruebusqui"

cambia el valor de todos los "alfa" de los 5 diccionarios

¿Como cambio el valor "alfa" de uno (y solo uno) de los diccionarios?


Se que es una pregunta estupida pero al ser tan basica google no
consigue darme la respuesta clara, de que estoy haciendo mal.

Gracias por vuestro tiempo
_______________________________________________
Python-es mailing list
Pyth...@python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Mario R. Osorio

unread,
Dec 19, 2015, 9:46:55 PM12/19/15
to La lista de python en castellano
Tu no tienes 5 diccionario tu tienes UN diccionario, el cual agregaste 5 veces a una lista, es decir que los 5 elemntos de la lista estan apuntando hacia el mismo objecto (el diccionario)..


Dtb/Gby
=======
Mario R. Osorio
A.S. of Computer Programming and Analysis

“If I had asked people what they wanted, they would have said faster horses.”
 ― Henry Ford

            

      

Andres Gonzalez

unread,
Dec 19, 2015, 9:57:57 PM12/19/15
to La lista de python en castellano
Hola compañero, si se esta hablando del mismo objeto, haces referencia al mismo diccionario.

mirate este enlace que habla de como solucionar este inconveniente :)

http://elclubdelautodidacta.es/wp/2012/09/python-como-copiar-un-diccionario/


-----

miguel zamora m.

unread,
Dec 19, 2015, 10:10:10 PM12/19/15
to La lista de python en castellano
lo que logro ver es que no estas iterando por todos los diccionarios solo uno es asi 


--
Miguel Zamora M.
Programador en Computacion e Informatica
08-1351249
mzm...@gmail.com
Santiago-Chile

monoBOT

unread,
Dec 21, 2015, 4:38:56 AM12/21/15
to La lista de python en castellano
Lo estás haciendo bien ... estás modificando el segundo diccionario, el problema que te están diciendo los compañeros es que al modificar el segundo los modificas todos porque has añadido el mismo objeto en todas las posiciones de la lista. por eso ves que el valor cambia en todos.
monoBOT
Visite mi sitio(Visit my site): monobotsoft.es/blog/

cheis

unread,
Dec 22, 2015, 3:02:38 AM12/22/15
to pyth...@python.org
Cierto estaba creando un "puntero" a un mismo diccionario
hay que usar copy() el problema biene cuando intentas crear un
diccionario con otro diccionario dentro 2 dimesiones


diccionario= {'alfa' : 'AAAAA' , 'beta' : 'BBBBB', 'omega': 'CCCCC',
'provincias': { 'burgos' : '1', 'palencia' : '2' , 'sevilla' : '3' } }

entoces se tiene que usar deepcopy()

gracias por las respuestas aun seguiria dando vueltas :D

El Sat, 19 Dec 2015 21:57:26 -0500
Andres Gonzalez <andresgonzale...@gmail.com> escribió:


> Hola compañero, si se esta hablando del mismo objeto, haces
> referencia al mismo diccionario.
>
> mirate este enlace que habla de como solucionar este inconveniente :)
>
> http://elclubdelautodidacta.es/wp/2012/09/python-como-copiar-un-diccionario/
>
>
> -----
>
> El 19 de diciembre de 2015, 21:46, Mario R. Osorio
> <ma...@osorio.solutions> escribió:
>
> > Tu no tienes 5 diccionario tu tienes UN diccionario, el cual
> > agregaste 5 veces a una lista, es decir que los 5 elemntos de la
> > lista estan apuntando hacia el mismo objecto (el diccionario)..
> >
> >
> > Dtb/Gby
> > =======
> > Mario R. Osorio
> > A.S. of Computer Programming and Analysis
> >
> > “If I had asked people what they wanted, they would have said faster
> > horses.”
> > ― Henry Ford
> >
> >
> >
> >
> >

Reply all
Reply to author
Forward
0 new messages