logo

sort() in Python

La funzione di ordinamento può essere utilizzata per ordinare l'elenco sia in ordine ascendente che discendente. Può essere utilizzato per ordinare elenchi di numeri interi, numeri in virgola mobile, stringhe e altro Pitone . La sua complessità temporale è O(NlogN).

Sintassi Python sort()

La sintassi della funzione sort() in Python è la seguente.

Sintassi: nome_elenco.sort(chiave=…, inverso=…)



parametri:

Per impostazione predefinita, Python sort() non richiede parametri aggiuntivi e ordina l'elenco in ordine crescente. Tuttavia, ha due parametri opzionali:

  • chiave: funzione che funge da chiave per il confronto di ordinamento
  • inversione: Se vero, l'elenco viene ordinato in ordine decrescente.

Valore di ritorno: Il sort() non restituisce nulla ma altera l'elenco originale in base al parametro passato.

Cos'è la funzione sort() di Python?

In Python, ilsort()>function è un metodo che appartiene alla lista . Viene utilizzato per ordinare in Python o gli elementi di un elenco in ordine crescente per impostazione predefinita. ILsort()>Il metodo modifica l'elenco originale sul posto, il che significa che riorganizza gli elementi direttamente all'interno dell'oggetto elenco esistente, anziché creare un nuovo elenco ordinato.

Sort() negli esempi Python

Un esempio base del metodo sort() di Python.

comando grep su Linux

Esempio : In questo esempio il codice seguente definisce un elenco denominatounsorted_list>con elementi numerici. ILsort()>viene quindi applicato all'elenco, che riorganizza i suoi elementi in ordine crescente. Viene quindi stampato l'elenco ordinato, che mostra il risultato dell'operazione di ordinamento.

Python3




unsorted_list>=> [>2>,>4>,>5>,>32>,>6>,>255>,>5>,>42>]> unsorted_list.sort()> print>(>'Now it is sorted:'>, unsorted_list)>

>

>

Produzione:

Now it is sorted: [2, 4, 5, 5, 6, 32, 42, 255]>

Diversi modi per ordinare() in Python

In Pitone,sort()>è un metodo integrato utilizzato per ordinare gli elementi di un elenco in ordine crescente. Modifica l'elenco originale in posizione, il che significa che riordina gli elementi direttamente all'interno dell'elenco senza creare un nuovo elenco. ILsort()>il metodo non restituisce alcun valore; semplicemente ordina l'elenco e lo aggiorna.

  1. Ordinamento Elenco in ordine crescente
  2. Ordinamento Elenco in ordine decrescente
  3. Ordina con funzione personalizzata Utilizzando la chiave
  4. Ordinamento Elenco delle stringhe per lunghezza
  5. Elenco di ordinamento di Tuple da un elemento specifico
  6. Elenco di ordinamento di Dizionari da una chiave specifica

Sort() in Python utilizzando l'elenco di ordinamento in ordine crescente

Il metodo `sort()` in Python viene utilizzato per ordinare un elenco di elementi in ordine crescente. Modifica l'elenco originale sul posto, riorganizzando i suoi elementi in ordine numerico o lessicografico crescente. Il metodo è applicabile a elenchi contenenti valori numerici, stringhe o una combinazione di entrambi. Per impostazione predefinita, sort() in Python ordina una lista in ordine crescente se non le forniamo alcun parametro.

Esempio : In questo esempio il codice seguente mostra le operazioni di ordinamento su diversi tipi di elenchi. Innanzitutto, ordina un elenco di numeri interi ('numeri') in ordine crescente utilizzando il metodo 'sort()'. Successivamente, ordina un elenco di numeri a virgola mobile ('decimalnumber') in ordine crescente.

Python3




# List of Integers> numbers>=> [>1>,>3>,>4>,>2>]> # Sorting list of Integers> numbers.sort()> print>(numbers)> # List of Floating point numbers> decimalnumber>=> [>2.01>,>2.00>,>3.67>,>3.28>,>1.68>]> # Sorting list of Floating point numbers> decimalnumber.sort()> print>(decimalnumber)> # List of strings> words>=> [>'Geeks'>,>'For'>,>'Geeks'>]> # Sorting list of strings> words.sort()> print>(words)>

>

>

Produzione:

[1, 2, 3, 4] [1.68, 2.0, 2.01, 3.28, 3.67] ['For', 'Geeks', 'Geeks']>

Sort() in Python utilizzando l'elenco di ordinamento in ordine decrescente

Per ordinare un elenco in ordine discendente, imposta il parametro inverso su True della funzione sort() in Python.

my_list.sort(reverse=True)>

Esempio: I n questo codice di esempio definisce tre elenchi di tipi diversi (interi, numeri a virgola mobile e stringhe), li ordina in ordine discendente utilizzando il metodo `sort` con il parametro `reverse=True`, quindi stampa gli elenchi ordinati.

Python3




# List of Integers> numbers>=> [>1>,>3>,>4>,>2>]> # Sorting list of Integers> numbers.sort(reverse>=>True>)> print>(numbers)> # List of Floating point numbers> decimalnumber>=> [>2.01>,>2.00>,>3.67>,>3.28>,>1.68>]> # Sorting list of Floating point numbers> decimalnumber.sort(reverse>=>True>)> print>(decimalnumber)> # List of strings> words>=> [>'Geeks'>,>'For'>,>'Geeks'>]> # Sorting list of strings> words.sort(reverse>=>True>)> print>(words)>

>

>

Produzione:

[4, 3, 2, 1] [3.67, 3.28, 2.01, 2.0, 1.68] ['Geeks', 'Geeks', 'For']>

Ordina con funzione personalizzata utilizzando il tasto

In questo metodo viene descritta un'operazione di ordinamento con una funzione personalizzata utilizzando il parametro chiave. Ciò consente l'ordinamento in base a un criterio specifico definito dalla funzione personalizzata anziché all'ordinamento predefinito. La funzione personalizzata viene applicata a ciascun elemento e l'elenco viene ordinato di conseguenza.

Esempio : In questo esempio il codice definisce una funzione 'sortSecond' che restituisce il secondo elemento di una tupla. Quindi crea un elenco di tuple, 'list1', e lo ordina in ordine crescente in base al secondo elemento utilizzando la funzione 'sortSecond'.

Python3




def> sortSecond(val):> >return> val[>1>]> # list1 to demonstrate the use of sorting> # using second key> list1>=> [(>1>,>2>),(>3>,>3>),(>1>,>1>)]> # sorts the array in ascending according to> # second element> list1.sort(key>=>sortSecond)> print>(list1)> # sorts the array in descending according to> # second element> list1.sort(key>=>sortSecond,reverse>=>True>)> print>(list1)>

>

>

Produzione:

[(1, 1), (1, 2), (3, 3)] [(3, 3), (1, 2), (1, 1)]>

Ordinamento dell'elenco di stringhe per lunghezza in Sort() in Python

In questo metodo ordiniamo un elenco di stringhe in ordine crescente in base alla loro lunghezza utilizzando la funzione `sort()` con `key=len`. Ciò significa che le stringhe sono disposte dalla lunghezza più breve a quella più lunga nell'elenco ordinato risultante.

Esempio : In questo esempio il codice seguente definisce un elenco di stringhe,words>, quindi lo ordina in base alla lunghezza di ciascuna stringa utilizzando il metodolen()>fungere da chiave di ordinamento. Infine, stampa l'elenco ordinato.

Python3




# Original list of strings> words>=> [>'apple'>,>'banana'>,>'kiwi'>,>'orange'>,>'grape'>]> # Sorting by length using the len() function as the key> words.sort(key>=>len>)> # Displaying the sorted list> print>(>'Sorted by Length:'>, words)>

>

>

Produzione :

Sorted by Length: ['kiwi', 'apple', 'grape', 'banana', 'orange']>

Ordinamento dell'elenco di tuple in base a un elemento specifico

Per ordinare un elenco di tuple in base a un elemento specifico, utilizza la funzione `sort()` con il parametro `key`. Specifica una funzione lambda come chiave, mirando all'indice dell'elemento desiderato. Le tuple verranno ordinate in base ai valori di quello specifico elemento.

Esempio : In questo metodo il codice definisce un elenco di tuple denominate 'persone', dove ciascuna tupla rappresenta il nome e l'età di una persona. Quindi ordina l'elenco in base al secondo elemento di ciascuna tupla (età) utilizzando il metodosort>metodo e una funzione lambda come chiave di ordinamento.

Python3




# Original list of tuples> people>=> [(>'Alice'>,>25>), (>'Bob'>,>30>), (>'Charlie'>,>22>), (>'David'>,>28>)]> # Sorting by the second element of each tuple (age)> people.sort(key>=>lambda> x: x[>1>])> # Displaying the sorted list> print>(>'Sorted by Age:'>, people)>

>

>

Produzione :

Sorted by Age: [('Charlie', 22), ('Alice', 25), ('David', 28), ('Bob', 30)]>

Ordinamento dell'elenco dei dizionari in base a una chiave specifica

Questo metodo prevede l'utilizzo della funzione `sort()` su un elenco di dizionari in Python. Specificando una funzione lambda come parametro chiave, è possibile ordinare l'elenco in base a una chiave specifica all'interno di ciascun dizionario. Ciò consente di disporre l'elenco dei dizionari in ordine crescente in base ai valori associati alla chiave scelta.

Esempio : In questo esempio il codice definisce un elenco di dizionari chiamatistudents>, dove ogni dizionario rappresenta uno studente con nome e chiavi di età. Quindi ordina l'elenco dei dizionari in base alla chiave di età in ciascun dizionario utilizzando l'estensionesort>metodo e una funzione lambda come chiave.

Python3




# Original list of dictionaries> students>=> [> >{>'name'>:>'Alice'>,>'age'>:>25>},> >{>'name'>:>'Bob'>,>'age'>:>30>},> >{>'name'>:>'Charlie'>,>'age'>:>22>},> >{>'name'>:>'David'>,>'age'>:>28>},> ]> # Sorting by the 'age' key in each dictionary> students.sort(key>=>lambda> x: x[>'age'>])> # Displaying the sorted list> print>(>'Sorted by Age:'>, students)>

>

>

Produzione :

Sorted by Age: [  {'name': 'Charlie', 'age': 22},  {'name': 'Alice', 'age': 25},  {'name': 'David', 'age': 28},  {'name': 'Bob', 'age': 30} ]>

Differenza tra la funzione sorted() e sort() in Python

Vediamo la differenza tra il smistato() e la funzione sort() in Python:

Python ordinato()

Ordinamento Python()

La funzione sorted() restituisce un elenco ordinato dell'oggetto iterabile specifico. Il metodo sort() ordina l'elenco.
Possiamo specificare l'ordine ascendente o discendente mentre utilizziamo la funzione sorted() Ordina l'elenco in ordine crescente per impostazione predefinita.
Sintassi : ordinato(iterabile, chiave=chiave, inverso=inverso) Sintassi : list.sort(reverse=Vero|Falso, chiave=miaFunzione)
Il suo tipo restituito è un elenco ordinato. Possiamo anche usarlo per ordinare un elenco in ordine decrescente.

Può essere utilizzato con qualsiasi iterabile, anche se il confronto tra gli elementi non è definito

Richiede che gli elementi siano confrontabili utilizzando il metodo<>E>>operatori

Mantiene l'ordine relativo degli elementi uguali, rendendolo stabile.

Potrebbe non essere stabile; l'ordine degli elementi uguali può cambiare.

Complessità temporale O(n log n) per la maggior parte dei casi.

Complessità temporale O(n log n) per la maggior parte dei casi.

Può ordinare solo un elenco che contiene un solo tipo di valore. Ordina l'elenco sul posto.

Supporta akey>parametro per criteri di ordinamento personalizzati.

Supporta anche akey>parametro per criteri di ordinamento personalizzati.

Richiede memoria aggiuntiva per il nuovo elenco ordinato.

Esegue l'ordinamento sul posto, risparmiando memoria.

Per saperne di più fare riferimento Differenza Python tra la funzione sorted() e sort() .