compressed comprehensive comp python iterator syntactic-sugar

python - comprehensive - ¿Existe una forma de "línea única" para obtener una lista de claves de un diccionario en orden ordenado?



list comp (3)

El método list sort() es una función modificadora que devuelve None .

Entonces, si quiero iterar a través de todas las claves de un diccionario, no puedo:

for k in somedictionary.keys().sort(): dosomething()

En cambio, debo:

keys = somedictionary.keys() keys.sort() for k in keys: dosomething()

¿Existe una manera bonita de iterar a través de estas teclas en orden ordenado sin tener que dividirlo en varios pasos?


¿Puedo responder mi propia pregunta?

Acabo de descubrir la práctica función "ordenada" que hace exactamente lo que estaba buscando.

for k in sorted(somedictionary.keys()): dosomething()

Aparece en el diccionario de claves Python 2.5 2


En realidad, .keys () no es necesario:

for k in sorted(somedictionary): doSomething(k)

o

[doSomethinc(k) for k in sorted(somedict)]


for k in sorted(somedictionary.keys()): doSomething(k)

Tenga en cuenta que también puede obtener todas las claves y valores ordenados por claves como esta:

for k, v in sorted(somedictionary.iteritems()): doSomething(k, v)