elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
29 Mayo 2012, 05:22  


Tema destacado: Nueva página de elhacker.net en Google+ Google+

+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting (Moderadores: Novlucker, Leo Gutiérrez., EleKtro H@cker)
| | |-+  [SOLUCIONADO][PYTHON] Como ordenar(sort) un diccionario?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [SOLUCIONADO][PYTHON] Como ordenar(sort) un diccionario?  (Leído 1,560 veces)
Jirp96

Desconectado Desconectado

Mensajes: 39


Ver Perfil
[SOLUCIONADO][PYTHON] Como ordenar(sort) un diccionario?
« en: 7 Agosto 2011, 18:26 »

Hola!
Como dice el titulo, necesito ordenar("sortear"?) un diccionario.
Tengo un diccionario que contiene las letras del alfabeto en minuscula y sus valores ascii; el par "clave-valor" seria: (letra: CodAscii)

El diccionario lo defino de esta forma(para no anotar letra por letra :xD):

Código
from string import letters
 
let = {}
for x in letters[26:52]: #letters[26:52] es la parte que contiene las letras minusculas
   let[x] = ord(x)
 
del letters

Cuando lo genero, me queda asi:
Código
>>>let
{'a': 97, 'c': 99, 'b': 98, 'e': 101, 'd': 100, 'g': 103, 'f': 102, 'i': 105, 'h': 104, 'k': 107, 'j': 106, 'm': 109, 'l': 108, 'o': 111, 'n': 110, 'q': 113, 'p': 112, 's': 115, 'r': 114, 'u': 117, 't': 116, 'w': 119, 'v': 118, 'y': 121, 'x': 120, 'z': 122}

Yo lo que quiero es que quede todo el diccionario ordenado(a,b,c,d,e,f....v,w,x,y,z) en vez de tenerlo asi(a,c,b,e,d....w,v,y,x,z)

___________________________________________________________________

He buscado en gugol, y encontre este codigo(lo encontre aqui)

Código
def sortedDictValues1(adict):
   items = adict.items()
   items.sort()
   return [value for key, value in items]
 

y me genera una lista ordenada, hasta aca todo bien(la lista esta ordenada), pero luego si la convierto a diccionario(perdonen el nombre de las variables  :rolleyes:)
Código
>>>l = sortedDictValues1(let)
>>>for i in l:
x[chr(i)] = i
 
>>>x
{'a': 97, 'c': 99, 'b': 98, 'e': 101, 'd': 100, 'g': 103, 'f': 102, 'i': 105, 'h': 104, 'k': 107, 'j': 106, 'm': 109, 'l': 108, 'o': 111, 'n': 110, 'q': 113, 'p': 112, 's': 115, 'r': 114, 'u': 117, 't': 116, 'w': 119, 'v': 118, 'y': 121, 'x': 120, 'z': 122}
 

Alguien sabe porque pasa esto? y si hay alguna cosa que estoy haciendo mal, o es algo de python(uso Python 2.66 por las dudas)?

Saludos! y gracias por adelantado


« Última modificación: 7 Agosto 2011, 21:17 por Jirp96 » En línea
Novlucker
Ninja y
Moderador
***
Desconectado Desconectado

Mensajes: 10.239


Yo que tu lo pienso dos veces


Ver Perfil
Re: [PYTHON] Como ordenar(sort) un diccionario?
« Respuesta #1 en: 7 Agosto 2011, 20:10 »

El problema es que no es posible ordenar un diccionario, lo único que puedes hacer es imprimir u obtener una representación de como quedaría ordenado, pero el objeto en si no se puede ordenar.
Por cierto, no se lo que intentas hacer pero, no es mejor esto?
Código
print ord("a")
print chr(97)

Saludos


« Última modificación: 7 Agosto 2011, 20:12 por Novlucker » En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
http://twitter.com/novlucker

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Jirp96

Desconectado Desconectado

Mensajes: 39


Ver Perfil
Re: [PYTHON] Como ordenar(sort) un diccionario?
« Respuesta #2 en: 7 Agosto 2011, 21:06 »

Hola!
Gracias por responder Novlucker, si no se puede, no se puede xD
_______________________________________________________________________

Por cierto, lo que intentaba hacer con ese diccionario era implementar el Cifrado Cesar en Python :xD.
El diccionario lo usaba para controlar los "límites" de los caracteres, para que no tomara ningun valor fuera del rango "a-z"

Saludos!
En línea
Novlucker
Ninja y
Moderador
***
Desconectado Desconectado

Mensajes: 10.239


Yo que tu lo pienso dos veces


Ver Perfil
Re: [PYTHON] Como ordenar(sort) un diccionario?
« Respuesta #3 en: 7 Agosto 2011, 21:11 »

Pero eso lo puedes hacer con comparaciones a secas :P
Código
print "a">"b"
print "c"<"z"
Por lo cual puedes convertir a enteros con ORD, y luego verificar si es mayor a "z" con CHR

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
http://twitter.com/novlucker

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Jirp96

Desconectado Desconectado

Mensajes: 39


Ver Perfil
Re: [PYTHON] Como ordenar(sort) un diccionario?
« Respuesta #4 en: 7 Agosto 2011, 21:16 »

Es cierto, no lo había pensado de esa forma :xD
La duda ya esta resuelta, ya pueden cerrar si quieren :D
Saludos! y gracias de vuelta por responder =P
En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
python ¿como poner tiempo?(Solucionado)
Scripting
desnight 2 1,504 Último mensaje 13 Marzo 2008, 15:21
por VortheX
[Solucionado]Buscar en Textbox |@@|[Solucionado]Ordenar de Mayor a menor
Programación Visual Basic
agus0 6 2,756 Último mensaje 13 Septiembre 2009, 01:33
por agus0
Crackeador MD5 por Diccionario [PYTHON]
Scripting
[ANTRAX] 0 1,206 Último mensaje 3 Septiembre 2010, 16:11
por [ANTRAX]
[Python] Ordenar palabras
Scripting
Meta 13 4,140 Último mensaje 24 Noviembre 2010, 05:39
por facu_m
Como obtener la dirección ip local en Python [solucionado]
Scripting
Yeison.Eng 2 1,940 Último mensaje 31 Diciembre 2010, 19:49
por Yeison.Eng
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines