2012-04-29 17 views
6

necesito ayuda para este caso:pitón: cómo desactivar ordenar automáticamente al crear el diccionario de

m={} 
m[1]=1 
m[333]=333 
m[2]=2 

# Result: 
{1: 1, 2: 2, 333: 333} 

así que incluso cuando no entré en '333' del pasado, tengo esto '333' que aparece en la fin del diccionario cuando lo imprima. ¿Por qué este 'diccionario' hace auto ordenar? y cómo desactivarlo? Puedo crear una función para volver a clasificar para arreglar el orden. pero eso no es lo que quiero, simplemente quiero imprimir y obtener orden de salida como el orden cuando ingreso los datos. ¿Hay alguna buena explicación y hay alguna solución?

+0

http://stackoverflow.com/questions/1872329/storing-python-dictionary-entries-in-the-order-they-are-pushed – shiva

+0

Lo más probable es que desee utilizar un 'OrderedDict'. –

+0

Gracias Guyz, eso explica por qué tengo este problema. aclamaciones. – andio

Respuesta

20

No está ordenando. dict no está ordenado en absoluto, por lo que no puede influir en el orden de las teclas de ninguna manera. Hay collections.OrderedDict en 2.7 y 3.1+, también hay standalone module para 2.4-2.6.

+0

+1: eliminé mi respuesta a favor de esto. – Johnsyweb

+0

genial. orderdict es el que estoy buscando. Muchas gracias. – andio

+0

@andio acepta el anwser luego – wRAR

1

Los elementos almacenados en un diccionario no tienen ningún orden inherente. El orden en que se imprimen se reduce por completo a los valores hash para cada una de las teclas y los demás elementos del diccionario.

+0

Gracias por la información. – andio

Cuestiones relacionadas