He dict en Python con las llaves de la siguiente forma:¿Puedo ordenar texto por su valor numérico en Python?
mydict = {'0' : 10,
'1' : 23,
'2.0' : 321,
'2.1' : 3231,
'3' : 3,
'4.0.0' : 1,
'4.0.1' : 10,
'5' : 11,
# ... etc
'10' : 32,
'11.0' : 3,
'11.1' : 243,
'12.0' : 3,
'12.1.0': 1,
'12.1.1': 2,
}
Algunos de los índices no tienen sub-valores, algunos tienen un nivel de sub-valores y algunos tienen dos. Si solo tuviera un subnivel, podría tratarlos a todos como números y ordenarlos numéricamente. El segundo subnivel me obliga a manejarlos todos como cadenas. Sin embargo, si los clasifico como cadenas tendré 10
siguiendo 1
y 20
siguiendo 2
.
¿Cómo puedo ordenar los índices correctamente?
Nota: Lo que realmente quiero hacer es imprimir el dictado ordenado por índice. Si hay una forma mejor de hacerlo que ordenarlo de alguna manera, eso está bien conmigo.
Esto se llama "clasificación natural". Consulte http://stackoverflow.com/questions/34518/natural-sorting-algorithm –