diccionario a una lista
Chema Cortes
pych3m4 en gmail.com
Jue Jul 5 09:42:52 CEST 2007
El 5/07/07, Leandro Tocalini <leandrotocalini en gmail.com> escribió:
> tengo una consulta.... toy tomando valores de un archivo.. q se
> agruparia asi...
> ponele para el 5000 tengo los valores 30, 60, 200 ... para el 5010 tengo
> los valores 12, 10
> entonces tengo pensado armar un diccionario y quiero hacer append de
> valores... despues me gustaria ordenar esos vectores... se puede hacer
> asi o q estructura me aconsejan???
Un diccionario está bien, aunque debes tener en cuenta que los
diccionarios no se pueden ordenar. La ventaja es que puedes hacer la
ordenación así de fácil:
sorted(d.items(),key=lambda x:x[1])
Aunque lo mejor sería que te crees tu propia clase derivada de 'dict':
class MiDict(dict):
def __setitem__(self,k,v):
self.setdefault(k,[])
self[k].append(v)
def sorted(self):
return sorted(self.items(),key=lambda x:x[1])
d=MiDict()
d[5000]=30
d[5010]=12
d[5000]=60
d[5000]=200
d[5010]=10
print d.sorted() --> [(5010, [12, 10]), (5000, [30, 60, 200])]
#para "resetear", basta con borrar el elemento antes
del d[5000]
d[5000]=2
print d.sorted() --> [(5000, [2]), (5010, [12, 10])]
Más información sobre la lista de distribución Python-es