Come ordinare quasi ogni tipo di elenco in Python

Come ordinare quasi ogni tipo di elenco in Python

L'ordinamento di un elenco in Python 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 usando Python ordinare() metodo.





Il ordinare() Il metodo 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)
Output: ['A', 'B', 'C', 'D', 'F']

Puoi usare il inversione argomento per visualizzare l'elenco in ordine decrescente:

myList = ['C', 'D', 'B', 'A', 'F']
myList.sort(reverse = True)
print(myList)
Output: ['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 nel ordinare() metodo utilizzando l'opzionale chiave discussione:

myList = ['MUO', 'Python', 'JavaScript', 'Sort', 'Sortlists']
def sortLength(item):
return len(item)
myList.sort(reverse = True, key = sortLength)
print(myList)
Output: ['JavaScript', 'Sortlists', 'Python', 'Sort', 'MUO']

Come ordinare un elenco di dizionari in Python

Puoi usare il ordinare() metodo per ordinare anche un elenco di dizionari.





Ordiniamo le attività nel dizionario di seguito in base all'ora:

myArray = [
{'Task': 'Wash', 'Time': 12.00},
{'Task':'Football', 'Time': 24.00},
{'Task':'Sort', 'Time': 17.00},
{'Task':'Code', 'Time': 15.00}
]
def sortByTime(item):
return item['Time']
myArray.sort(key = sortByTime)
print(myArray)

Poiché i valori del tempo sono interi, il blocco di codice precedente riorganizza l'array in base al tempo dell'attività.

Imparentato: 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, devi solo cambiare Tempo tra parentesi quadre a Compito :

myArray = [
{'Task': 'Wash', 'Time': 12.00},
{'Task':'Football', 'Time': 24.00},
{'Task':'Sort', 'Time': 17.00},
{'Task':'Code', 'Time': 15.00}
]
def sortByTime(item):
return item['Task']
myArray.sort(key = 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 insieme a ordinare() per il codice più pulito:

myArray.sort(key = lambda getTime: getTime['Time'])
print(myArray)

Come ordinare un elenco Python nidificato

È possibile ordinare un elenco nidificato di tuple in base all'indice di ciascun 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):
return a[2]
Alist.sort(key = sortByThirdIndex)
print(Alist)
Output: [(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 nido nell'elenco deve appartenere allo stesso tipo di dati.

Correlati: che cos'è un set in Python e come crearne uno

devo scaricare 64 o 32 bit?

Tuttavia, per disporre l'output in ordine decrescente:

Alist.sort(key = getIndex, reverse = True)
print(Alist)
Output: [(3, 19, 20), (1, 8, 15), (10, 19, 4), (7, 9, 3), (2, 6, 0)]

Vediamo come appare con a lambda funzione anche:

Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
newList = sorted(Alist, key = lambda a: a[2])
print(newList)
Output: [(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 smistato() metodo.

Anche se funziona in modo simile al ordinare() metodo, crea un nuovo elenco ordinato senza modificare l'originale. Anche il layout della sintassi è leggermente diverso.

La sintassi per smistato() il metodo generalmente assomiglia a questo:

sorted(list, key = function, reverse = True/False)

Quindi, per ordinare un elenco usando 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):
return a[2]
newList = sorted(Alist, key = getIndex)
print(newList)
Output: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]

Il smistato() il metodo accetta anche a lambda funzione come la sua chiave:

Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
newList = sorted(Alist, key = lambda a: a[2])
print(newList)
Output: [(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 in progetti di vita reale. 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.

Condividere Condividere Tweet E-mail Come aggiungere un elenco in Python

Lavorare con gli elenchi in Python? Ecco cosa devi sapere sull'uso della funzione append di Python quando lavori con gli elenchi.

Leggi Avanti
Argomenti correlati
  • Programmazione
  • Pitone
  • Tutorial sulla programmazione
Circa l'autore Idisou Omisola(94 articoli pubblicati)

Idowu è appassionato di qualsiasi tecnologia intelligente e produttività. Nel tempo libero gioca con la programmazione e quando si annoia passa alla scacchiera, ma ama anche staccare ogni tanto dalla routine. La sua passione per mostrare alle persone la tecnologia moderna lo motiva a scrivere di più.

Altro da Idowu Omisola

Iscriviti alla nostra Newsletter

Iscriviti alla nostra newsletter per consigli tecnici, recensioni, ebook gratuiti e offerte esclusive!

Clicca qui per iscriverti