Ordinare un elenco in Python ti consente di disporre i suoi elementi in ordine crescente o decrescente.
Invece di scrivere lunghi blocchi di codice per farlo, Python ha un metodo integrato che ti consente di ordinare gli elementi in qualsiasi elenco o array. Spiegheremo come farlo in questo post.
Come ordinare un elenco in Python
Puoi ordinare gli elementi in un elenco o in un array utilizzando Python ordinare() metodo.
Il ordinare() in Python accetta due argomenti opzionali e la sintassi è simile a questa:
list.sort (key = function, reverse = True / False)
Per impostazione predefinita, il ordinare() il metodo dispone gli elementi di un elenco in ordine crescente:
myList = ["C", "D", "B", "A", "F"]
myList.sort ()
print (myList)
Uscita: ["A", "B", "C", "D", "F"]
Puoi usare il file inversione argomento per visualizzare l'elenco in ordine decrescente:
myList = ["C", "D", "B", "A", "F"]
myList.sort (reverse = True)
print (myList)
Uscita: ["F", "D", "C", "B", "A"]
È inoltre possibile disporre gli elementi in un elenco in base alla lunghezza di ciascuna stringa.
Per fare ciò, crea una funzione e passala al file ordinare() utilizzando il metodo opzionale chiave discussione:
myList = ["MUO", "Python", "JavaScript", "Sort", "Sortlists"]
def sortLength (elemento):
return len (articolo)
myList.sort (reverse = True, key = sortLength)
print (myList)
Risultato: ["JavaScript", "Sortlists", "Python", "Sort", "MUO"]
Come ordinare un elenco di dizionari in Python
Puoi usare il file ordinare() metodo per ordinare anche un elenco di dizionari.
Ordiniamo le attività nel dizionario di seguito in base al loro tempo:
myArray = [
{"Task": "Wash", "Time": 12.00},
{"Task": "Football", "Time": 24.00},
{"Attività": "Ordina", "Ora": 17.00},
{"Attività": "Codice", "Ora": 15.00}
]
def sortByTime (elemento):
articolo di reso ["Ora"]
myArray.sort (chiave = sortByTime)
print (myArray)
Poiché i valori di tempo sono numeri interi, il blocco di codice precedente riorganizza l'array in base al tempo dell'attività.
Relazionato: Come funzionano gli array e gli elenchi in Python
Oltre a ordinare l'array sopra in base al tempo, puoi anche organizzarlo in ordine alfabetico utilizzando le attività, che sono stringhe.
Per ordinare per stringa nell'array di esempio, è sufficiente modificare Tempo nella parentesi quadra a Compito:
myArray = [
{"Task": "Wash", "Time": 12.00},
{"Task": "Football", "Time": 24.00},
{"Attività": "Ordina", "Ora": 17.00},
{"Attività": "Codice", "Ora": 15.00}
]
def sortByTime (elemento):
restituisci articolo ["Attività"]
myArray.sort (chiave = sortByTime)
print (myArray)
Puoi anche ordinare le attività in ordine inverso impostando inversione a vero:
myArray.sort (key = sortByTime, reverse = True)
Puoi anche usa una funzione lambda con ordinare() per codice pulitore:
myArray.sort (key = lambda getTime: getTime ["Time"])
print (myArray)
Come ordinare un elenco Python annidato
È possibile ordinare un elenco nidificato di tuple in base all'indice di ogni elemento nidificato in tale elenco.
Ad esempio, il codice seguente utilizza il terzo elemento in ogni tupla per ordinare l'elenco in ordine crescente:
Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
def sortByThirdIndex (a):
restituire a [2]
Alist.sort (chiave = sortByThirdIndex)
stampa (Alist)
Uscita: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]
Nell'output sopra, il terzo elemento in ogni tupla aumenta da zero a venti consecutivamente.
Nota che questo non funziona con un set Python poiché non puoi indicizzarlo. Inoltre, ogni nidificazione nell'elenco deve appartenere allo stesso tipo di dati.
Relazionato: Che cos'è un set in Python e come crearne uno
Tuttavia, per disporre l'output in ordine decrescente:
Alist.sort (key = getIndex, reverse = True)
stampa (Alist)
Uscita: [(3, 19, 20), (1, 8, 15), (10, 19, 4), (7, 9, 3), (2, 6, 0)]
Vediamo come appare con un file lambda funzione pure:
Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
newList = ordinato (Alist, key = lambda a: a [2])
print (newList)
Uscita: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]
Come ordinare un elenco utilizzando il metodo Sorted ()
In alternativa, puoi utilizzare il file smistato() metodo.
Sebbene funzioni in modo simile a ordinare() metodo, crea un nuovo elenco ordinato senza modificare l'originale. Anche il layout della sintassi è leggermente diverso.
La sintassi per il smistato() il metodo generalmente ha questo aspetto:
ordinato (elenco, chiave = funzione, inverso = vero / falso)
Quindi, per ordinare un elenco utilizzando il smistato() metodo, è necessario creare una nuova variabile per l'elenco ordinato:
Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
def getIndex (a):
restituire a [2]
newList = ordinato (Alist, key = getIndex)
print (newList)
Uscita: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]
Il smistato() il metodo accetta anche un file lambda funge da chiave:
Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
newList = ordinato (Alist, key = lambda a: a [2])
print (newList)
Uscita: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]
Dove puoi applicare l'ordinamento degli elenchi?
Una solida conoscenza del metodo di ordinamento Python è necessaria per una programmazione efficiente. Ti consente di controllare come viene visualizzato un elenco o un array e puoi sempre applicarlo a progetti reali. Ad esempio, l'ordinamento di un elenco Python può tornare utile quando si riorganizzano i dati da un'API o da un database, quindi ha più senso per un utente finale.
Lavori con gli elenchi in Python? Ecco cosa devi sapere sull'uso della funzione di aggiunta di Python quando lavori con gli elenchi.
Leggi Avanti
- Programmazione
- Pitone
- Tutorial di codifica

Idowu è appassionato di tutto ciò che riguarda la tecnologia intelligente e la produttività. Nel tempo libero gioca con la programmazione e quando è annoiato passa alla scacchiera, ma ama anche staccarsi dalla routine di tanto in tanto. La sua passione per mostrare alle persone come aggirare la tecnologia moderna lo motiva a scrivere di più.
Iscriviti alla nostra Newsletter
Iscriviti alla nostra newsletter per suggerimenti tecnici, recensioni, ebook gratuiti e offerte esclusive!
Ancora un passo…!
Conferma il tuo indirizzo e-mail nell'e-mail che ti abbiamo appena inviato.