Sıralamak istediğim dizelerim var.Python'daki harflerden sonra dizeleri ve yer numaralarını sırala
Varsayılan olarak, harfler, sıralanmış bir listede en son yerleştirilen sayılardan (veya dize numaralarından) daha büyük bir değere sahiptir.
>>> 'a' > '1'
True
>>> 'a' > 1
True
Listenin altındaki bir numarayla başlayan tüm dizeleri yerleştirmek istiyorum.
Örnek:
Boylanmamış listesi:
['big', 'apple', '42nd street', '25th of May', 'subway']
Python'un varsayılan sıralama:
['25th of May', '42nd street', 'apple', 'big', 'subway']
Talep sıralama:
Bu, OP'nin tam olarak istediği şeyi yapar. Bununla birlikte, bunun [doğal sıralama] yapamayacağını belirtmek gerekir (http://stackoverflow.com/questions/4836710/does-python-have-a-built-in-function-for-string-natural-sort) dize numaraları, '' 2'' sonra '' 11 '' listelenir. –
@ LukasGraf İyi bir nokta. – grc
+1. Eğer listeniz tamsayılar içeriyorsa, 'x'' str() ':' dizininde sıralanır (a, anahtar = lambda x: (str (x) [0] .isdigit(), str (x)) ' –