Ho una lista di stringhe che voglio ordinare.Ordina l'elenco di stringhe e inserisci i numeri dopo le lettere in python
Per impostazione predefinita, le lettere hanno un valore maggiore rispetto ai numeri (o numeri di stringa), che li colloca per ultimi in una lista ordinata.
>>> 'a' > '1'
True
>>> 'a' > 1
True
Voglio essere in grado di posizionare tutte le stringhe che inizia con un numero in fondo alla lista.
Esempio:
lista Celebrita:
['big', 'apple', '42nd street', '25th of May', 'subway']
di Python ordinamento predefinito:
['25th of May', '42nd street', 'apple', 'big', 'subway']
richiesto l'ordinamento:
Questo fa esattamente quello che l'OP chiedeva. Vale la pena sottolineare che ciò non comporterà [ordinamento naturale] (http://stackoverflow.com/questions/4836710/does-python-have-a-built-in-function-for-string-natural-sort) per i numeri di stringa, ''2'' saranno elencati dopo' '11''. –
@LukasGraf Buon punto. – grc
+1. Nel caso in cui la tua lista includa numeri interi, apri 'x' in' str() ':' ordinato (a, chiave = lambda x: (str (x) [0] .isdigit(), str (x)) ' –