Introduzione all'ordinamento in Python

Ad un certo punto in un'applicazione o in un programma, dobbiamo ordinare i dati in un certo ordine, ad esempio, ordinare i dipendenti in base allo stipendio o in base a un certo grado, ordinare l'elenco dei prodotti in base al prezzo del prodotto e così via. In tal caso, lo sviluppatore deve implementare l'ordinamento in un programma, se lo sviluppatore utilizza il linguaggio di programmazione Python, sarà molto facile da implementare. Python offre funzioni integrate per eseguire l'ordinamento di base o personalizzare le funzioni di ordinamento a livello granulare. Ci sono 2 funzioni integrate in Python da ordinare.

Vediamo come ordinare diversi tipi di dati, ordinare i dati in ordine personalizzato.

  • Dobbiamo eseguire l'ordinamento sulla raccolta di elementi o gruppi di elementi in modo da ottenere una raccolta di elementi in un certo ordine. Per l'ordinamento, il confronto deve essere eseguito tra ogni elemento della raccolta e il confronto è possibile solo e solo se sono dello stesso tipo di dati, quindi l'ordinamento possiamo eseguire sulla raccolta se sono gli stessi elementi del tipo di dati, ad esempio da intero a intero può confrontare ma non intero con stringa.
  • Il prossimo punto è creare la raccolta di elementi, in Python, abbiamo strutture di dati di liste, tuple, set e dizionari che hanno usato per memorizzare la raccolta di elementi. Quindi per eseguire l'ordinamento è necessario avere una conoscenza di base delle tesi. Useremo Python 3, la sintassi potrebbe essere leggermente diversa se si utilizza Python 2 e anche l'output di esempio.

Funzione di ordinamento in Python

Esistono due funzioni di ordinamento integrate in Python.

  • ordinare()
  • smistato()

Di seguito sono menzionate due funzioni di ordinamento:

1. sort ()

Il metodo sort () ordina gli elementi di un determinato elenco di raccolte in un ordine specifico crescente o decrescente.

La sintassi della funzione sort () è:

list.sort(key = …, reverse = …)

  • chiave - La funzione di specifica chiave parametro che utilizza per il confronto ordinamento.
  • Reverse - Il parametro reverse se vero, l'elenco ordinato è invertito, il che significa ordinato in ordine decrescente.

Per ottenere la descrizione della funzione di ordinamento, utilizzare il comando help come indicato di seguito.

>>> lis=(1, 4, 3, 2) >>> help( lis.sort )

Iniziamo la funzione di ordinamento con l'esempio.

Esempio 1:

l = ( 20, 50, 10, 40, 60 ) print("list = ", l)
l.sort()
print("sorted list = ", l)

Produzione:

Come nel codice sopra, viene creato l'elenco non ordinato (20, 50, 10, 40, 60) e si applica ulteriormente la funzione sort (), che ordina l'elenco in ordine crescente e non restituisce nulla.

Quindi, proviamo la funzione sort () sul tipo di dati decimale o float.

Esempio n. 2:

l = ( 26.7, 34.23, 67.45, 89.34, 23.18 ) print("list = ", l)
l.sort()
print("sorted list = ", l)

Produzione:

Quindi, proviamo la funzione sort () sul tipo di dati char.

Esempio n. 3:

l = ( 'b', 'd', 'a', 'n', 'g') print("liist = ", l)
l.sort()
print("sorted liist = ", l)

Produzione:

Quindi, proviamo la funzione sort () sul tipo di dati String.

Esempio n. 4:

l = ( "banana", "apple", "orange", "mango" ) print("liist = ", l)
l.sort()
print("sorted liist = ", l)

Produzione:

Successivamente, proviamo la funzione sort () su diversi elementi di tipi di dati.

Esempio n. 5:

l = ( 89, 56.78, "apple" ) print("liist = ", l)
l.sort()
print("sorted liist = ", l)

Produzione:

Quindi, proviamo la funzione sort () con argomenti inversi.

Esempio n. 6:

l = ( 26.7, 34.23, 67.45, 89.34, 23.18 ) print("liist = ", l)
l.sort( reverse = True )
print("sorted liist = ", l)

Produzione:

Nel codice sopra, viene creato l'elenco non ordinato (26.7, 34.23, 67.45, 89.34, 23.18) e più avanti si applica la funzione sort () con reverse = True, il valore predefinito di reverse è False, che ordina l'elenco in ordine inverso o ordine decrescente.

Quindi, proveremo la funzione sort () con argomenti chiave:

Il parametro chiave è il componente più importante della funzione sort (). A questo argomento, viene passata una funzione, che verrà utilizzata su ciascun elemento nell'elenco ordinato per disporre nell'ordine risultante.

Iniziamo l'esempio, supponiamo di avere un elenco di stringhe e vogliamo ordinare un elenco in base alla lunghezza delle stringhe nell'elenco in ordine crescente (dalla più breve alla più lunga). La funzione len () integrata in python restituisce la lunghezza della stringa, quindi len () può essere usata per passare l'argomento chiave.

Esempio 7:

word = "Hello"
length = len(word)
print( "The length of word is ", length)
l = ( "aaa", "bbbbb", "cc", "ddd" ) print("liist = ", l)
print( "The length of list is ", len(l))
# length of the list is 4, because it contains 4 elements
# Now we sort the list based on the length of the list elements
l.sort( key = len )
print("Sorted liist = ", l)
# Now we sort the list based on the length of the list elements and reverse
l.sort(key = len, reverse = True)
print("Sorted liist with reverse = ", l)

Produzione:

L'ordine risultante di list.sort (key = len) è un elenco di stringhe di ordinamento in ordine dal più breve al più lungo. Considerando che list.sort (key = len, reverse = True) risultante in un ordine della lista è la più lunga alla più breve. La lunghezza di ciascun elemento nell'elenco è determinata dalla funzione len ().

Quindi, proviamo la funzione sort () con il tasto che passa l'utente definisce la funzione:

Esempio 8:

l = ( 'banana', 'orange', 'apple' ) print("liist = ", l)
# function return second element
def sort_onSecondChar(word):
return word(1) l.sort( key = sort_onSecondChar )
print("Sorted liist based on second character = ", l)
# Now we sort the list based on the length of the list elements and reverse
l.sort( key = sort_onSecondChar, reverse = True)
print("Sorted liist based on second character with reverse = ", l)

Produzione:

L'ordine risultante di list.sort (key = sort_onSecondChar)) è un elenco di stringhe di ordinamento in ordine crescente in base al secondo carattere. Considerando che un elenco.sort (key = sort_onSecondChar, reverse = True) il risultante ordine dell'elenco sta decrescente in base al secondo carattere. L'ordinamento di ciascun elemento nell'elenco è determinato dall'utente per definire la funzione sort_onSecondChar ().

2. ordinato ()

La chiamata di funzione sort () nell'elenco o nella raccolta restituisce il nuovo elenco ordinato. La funzione sort () non modifica o modifica l'elenco su cui viene chiamata, ma restituisce l'elenco ordinato come risultato di esso.

La sintassi della funzione sort ():

sorted(iterable, key, reverse)

  • iterabile - elenca, tupla, stringa, set, set congelato, dizionario qualsiasi raccolta o iterabile che deve ordinare.
  • reverse-reverse specifica se l'elenco ordinato deve essere invertito o meno (ovvero in ordine decrescente). È
  • chiave: specifica la funzione come chiave da confrontare per l'ordinamento. È facoltativo

Per ottenere la descrizione della funzione di ordinamento, utilizzare il comando help come indicato di seguito.

Considera gli esempi:

Esempio n. 9:

l = ( 2, 1, 3, 6, 5, 4 ) print("list = ", l)
sorted(l)
print( "The sorted list = ", l)

Produzione:

Si noti che possiamo anche usare la funzione list.sort () per eseguire lo stesso, ma le differenze sono che la funzione sort () modifica l'elenco sul posto stesso e restituisce None come risultato di output. Un'altra differenza della funzione list.sort () è che può essere applicata all'unico elenco, mentre l'ordinamento () può essere applicato a qualsiasi raccolta o iterabile.

Vediamo l'esempio in cui creiamo la tupla (sappiamo che per creare la tupla usa (e) parentesi graffe e funzioni di tupla se è ordinata, memorizza i duplicati, non può applicarsi all'indice ed è immutabile) e applica la funzione ordinata () .

Esempio n. 10:

t = ( 60, 20, 40, 10 )
print("Tuple = ", t)
re=sorted(t)
#print return of sorted()
print( "The return sorted list of sorted() = ", re)
#we check what is there in t
print( "After sorted tuple = ", t)

Produzione:

Se la funzione sort () applicata alla tupla, fornisce "AttributeError: l'oggetto" tuple "non ha errori di attributo" sort ".

Quindi la funzione sort () non può essere applicata alla tupla, nemmeno può essere applicata ad altre raccolte eccetto l'elenco.

Successivamente, vedremo alcuni esempi con diversi tipi di dati:

Esempio n. 11:

l = ( 2.89, 56.34, 45.23 ) print("List of floating numbers = ", l)
re=sorted(l)
#print return of sorted()
print( "The return list of sorted() floating numbers = ", re)
lc = ( 'l', 'e', 'g', 'a', 'd' ) print("List of characters = ", lc)
re=sorted(lc)
#print return of sorted()
print( "The return list of sorted() characters = ", re)

Produzione:

Quindi, proveremo la funzione sort () con il parametro inverso:

Consideriamo l'esempio:

Esempio n. 12:

l = ( 2, 1, 3, 6, 5, 4 ) print("List = ", l)
re=sorted(l, reverse=True )
#print return of sorted()
print( "The return list of sorted() with reverse = ", re)

Produzione:

Successivamente, vedremo la funzione sort () con il parametro key, nel codice seguente viene attivata la funzione len () passata al parametro key, quindi la funzione sort () restituirà un elenco in ordine di ordinamento basato sulla lunghezza degli elementi.

Esempio 13:

l = ('aaaa', 'bb', 'ccc', 'ddddd') print("List = ", l)
re=sorted(l, key = len )
#print return of sorted()
print( "The return list of sorted() with key = ", re)

Produzione:

Successivamente, vedremo una funzione ordinata () con il parametro chiave mentre l'utente definisce la funzione, nel codice seguente viene scattata passando la funzione returnSecond () al parametro chiave. La funzione returnSecond () è l'utente che definisce la funzione, che restituisce solo il secondo elemento, quindi la funzione sort () restituisce un nuovo elenco ordinato in ordine di ordinamento basato sul secondo elemento della tupla. Se vogliamo ordinare sulla base del primo elemento, modifica la funzione returnSecond () per restituire il primo elemento come (L (0)).

Esempio n. 14:

# return second element for sort
def returnSecond( L ):
return L(1) # list of tuple
list = ( ('a', 40), ('b', 30), ('c', 20), ('d', 10) ) # sorting list with key = returnSecond (returnSecond function which return second element so sort done based on seceond elemet)
sortedList = sorted(list, key = returnSecond)
# print list
print('The sorted list:', sortedList)

Produzione:

Modifichiamo il codice sopra usando la funzione lambda (la funzione lambda è una funzione anonima, simula le stesse funzioni incorporate di C e C ++).

Esempio n. 15:

# list of tuple
list = ( ('a', 40), ('b', 30), ('c', 20), ('d', 10) ) # sorting list with key = lambda x : x(1) (lambda function which return second element so sort done based on second element)
sortedList = sorted( list, key = lambda x : x(1))
print( "The sorted list = ", sortedList)

Produzione:

Il codice precedente modifica l'ordinamento in base al primo elemento modificando la funzione lambda.

Esempio n. 16:

# list of tuple
list = ( ('a', 40), ('b', 30), ('c', 20), ('d', 10) ) # sorting list with key = lambda x : x(0) (lambda function which return first element so sort done based on first element)
sortedList = sorted( list, key = lambda x : x(0))
# print list
print('The sorted list:', sortedList)

Produzione:

Ora creiamo un elenco di dettagli degli studenti e memorizziamo i dettagli di ogni studente nella tupla che useremo. Una tupla contiene un record dello studente, il primo elemento nella tupla è il nome dello studente, il secondo elemento è il no roll dello studente e il terzo elemento è il punteggio totale dello studente. Successivamente, vogliamo memorizzare i dettagli degli studenti in ordine di punteggio, quindi iniziamo la codifica.

Esempio n. 17:

students = ( ('john', 1, 60), ('jane', 2, 70), ('dave', '3', 70.5), ('joseph', 1, 92) ) print( "The Student List = ", students)
# sorting the student list of tuple based on the third element that is marks
sortedlist = sorted(students, key=lambda stud : stud(2))
print("The sorted list = ", sortedlist)
#reverese
sortedlist = sorted(students, key=lambda stud : stud(2), reverse=True)
print("The sorted list with reverse=True ", sortedlist)
# Display the student name and marks in sorting order of their marks
sortedlist = sorted(students, key=lambda stud : stud(2))
print("The student names and marks in order of their marks")
print("name", "marks")
for x in sortedlist:
print(x(0), x(2))

Produzione:

Conclusione

La funzione sort () e sort () utilizza per ordinare la raccolta. List.sort () viene modificato nell'elenco stesso, mentre l'elenco (elenco) non modificato nell'elenco restituisce il nuovo elenco ordinato. La funzione sort () si applica solo all'elenco mentre la funzione sort () può applicarsi a tutte le raccolte come elenco, tupla, dizionario e tutto.

Articoli consigliati

Questa è una guida all'ordinamento in Python. Qui discutiamo le due funzioni di ordinamento integrate in Python con il programma e l'output. Puoi anche leggere il seguente articolo per saperne di più -

  1. Variabili Python
  2. Distruttore in Python
  3. Connessione al database Python
  4. Redattori di Python
  5. Tipi di dati PL / SQL
  6. Diversi tipi di dati SQL con esempi

Categoria: