Ho dict in pitone con chiavi della seguente forma:Posso ordinare il testo in base al suo valore numerico in 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,
}
Alcuni degli indici hanno sotto-valori, alcuni hanno un livello di sotto-valori e alcuni hanno due. Se avessi solo un sottolivello potrei trattarli tutti come numeri e ordinare numericamente. Il secondo sottolivello mi costringe a gestirli tutti come stringhe. Tuttavia, se li ordino come stringhe, avrò 10
dopo 1
e 20
dopo 2
.
Come posso ordinare gli indici correttamente?
Nota: Quello che voglio veramente è stampare il dict ordinato per indice. Se c'è un modo migliore di farlo, in qualche modo va bene per me.
Questo è chiamato "ordinamento naturale". Vedi http://stackoverflow.com/questions/34518/natural-sorting-algorithm –