Python sort

In questa lezione parleremo del metodo sort() di Python utile per ordinare velocemente una lista in ordine crescente o decrescente.

Realizziamo dunque alcuni esempi per capirne il funzionamento.

Ordinamento crescente/decrescente di una lista con Python sort

Prendiamo in input una lista di numeri qualsiasi ed applichiamo il metodo sort su di essa per effettuare l’ordinamento in senso crescente.


numbers = [1,7,9,3,4]
numbers.sort()
print(numbers)

Parametro reverse di Python sort

Ordiniamo adesso in ordine descrescente utilizzando il parametro opzionale reverse. Se reverse è False si ordina la lista in senso crescente, è infatti il valore di default, se invece reverse è True, si ordina la lista in senso descrescente.

Ecco in esempio:


numbers = [1,7,9,3,4]
numbers.sort(reverse=True)
print(numbers)

Parametro key di sort

Il parametro key consente di specificare un criterio di ordinamento in base ad una funzione.

Facciamo un esempio ordinando una lista in base alla lunghezza dei nomi. Definiamo una funzione che calcola la lunghezza dei nomi di un array.

Applichiamo l’ordinamento impostando la key con la funzione definita.

Ecco di seguito il semplice esempio dell’algoritmo di ordinamento Python sort():


names = ['Paul','Robert','Elena','Tom']

def len_names(array):
   return len(array)

names.sort(key=len_names)

print(names)

Se volessimo ordinare in ordine inverso, basterà indicare anche il parametro reverse.


names = ['Paul','Robert','Elena','Tom']

def len_names(array):
   return len(array)

names.sort(reverse = True, key=len_names)

print(names)

Esempio di ordinamento con Python sort

In questo esempio proviamo ad ordinare una lista di lettere maiuscole e minuscole.



names = ['B','a','C','s']
names.sort()

print(names)

In output avremo: [‘B’, ‘C’, ‘a’, ‘s’]

Il risultato ottenuto non è quello che ci aspettavamo! Perchè? Ovviamente perché ogni lettera dell’alfabeto corrsiponde ad un carattere della codifica ASCII e le lettere maiuscole hanno una codifica diversa rispetto alle minuscole.

Possiamo ottenere un ordinamento corretto ad esempio convertendo tutti i caratteri della lista in minuscolo.


names = ['B','a','C','s']
names_order = [name.lower() for name in names]
names_order.sort()

print(names_order)

Potremmo anche scrivere in questo modo:


names = ['B','a','C','s']

for i in range(len(names)):
    names[i] = names[i].lower()

names.sort()

print(names)

Conclusione

In questa lezione abbiamo visto come ordinare velocemente una lista utilizzando Python sort, nelle prossime lezioni studieremo alcuni algoritmi di ordinamento a scopo didattico.

Some useful links

Python tutorial

Python Compiler

Install Python

Variables

Assignment operators

Strings

Casting

How to find the maximum of N numbers

Python

Bubble sort

Matplotlib Plot

Continua la lettura su: https://www.codingcreativo.it/python-sort/ Autore del post: Coding Creativo Fonte: https://www.codingcreativo.it

Related Articles

Esercizi Per Imparare A Distinguere Lettere Maiuscole E Minuscole

L’apprendimento dell’alfabeto rappresenta una delle prime sfide per i bambini nella scuola primaria. Distinguere tra lettere maiuscole e minuscole è una delle competenze fondamentali che i bambini devono acquisire per scrivere correttamente e leggere con fluidità. I bambini della scuola primaria imparano non solo a riconoscere visivamente le lettere, ma anche a utilizzare maiuscole e minuscole in modo appropriato nel contesto della scrittura. Gli esercizi per imparare a distinguere lettere maiuscole e minuscole sono progettati per aiutare i bambini a sviluppare questa abilità in modo divertente e interattivo.Imparare quando e come usare le lettere maiuscole e minuscole è essenziale per scrivere frasi corrette e costruire testi più complessi. I bambini devono apprendere che le maiuscole si usano all’inizio di una frase, per i nomi propri, per i luoghi e in altre situazioni grammaticali specifiche. Allo stesso tempo, devono abituarsi a scrivere in minuscolo nei contesti in cui è appropriato. In questo articolo, esploreremo una serie di esercizi pratici per aiutare i bambini a distinguere correttamente tra maiuscole e minuscole, offrendo suggerimenti su come rendere l’apprendimento coinvolgente ed efficace.A fine articolo potrete scaricare gratuitamente in formato PDF gli “Esercizi Per Imparare A Distinguere Lettere Maiuscole E Minuscole, Italiano per la Scuola Primaria“.Indice
L’importanza di imparare a distinguere tra lettere maiuscole e minuscole nella Scuola PrimariaRiconoscere e utilizzare correttamente le lettere maiuscole e minuscole è un passaggio fondamentale per lo sviluppo delle competenze linguistiche e grammaticali nei bambini. Ecco perché questo aspetto dell’alfabetizzazione è così importante:1. Sviluppo della corretta scritturaImparare a distinguere tra maiuscole e minuscole aiuta i bambini a scrivere correttamente. Le maiuscole non solo segnano l’inizio di una frase, ma sono anche utilizzate per nomi propri, luoghi e altre categorie specifiche. Una conoscenza chiara di queste regole aiuta i bambini a scrivere testi leggibili e ben formati.2. Facilita la letturaRiconoscere immediatamente la differenza tra lettere maiuscole e minuscole facilita anche la lettura. Poiché le lettere maiuscole sono utilizzate per segnare punti importanti all’interno del testo, come l’inizio di una frase o i nomi propri, i bambini possono comprendere meglio la struttura del testo e la logica che lo sottende.3. Comprensione delle regole grammaticaliDistinguere tra maiuscole e minuscole non riguarda solo l’ortografia, ma implica anche la comprensione delle regole grammaticali della lingua italiana. Questo aiuta i bambini a diventare scrittori più sicuri e competenti, migliorando la loro capacità di comunicare efficacemente per iscritto.Tipologie di esercizi per imparare a distinguere lettere maiuscole e minuscolePer insegnare ai bambini a riconoscere e utilizzare correttamente le lettere maiuscole e minuscole, esistono una serie di esercizi che possono essere integrati nell’apprendimento quotidiano, sia a scuola che a casa. Vediamo alcune delle tipologie di esercizi più efficaci:1. Esercizi di abbinamento tra maiuscole e minuscoleUno degli esercizi più semplici e utili per insegnare la differenza tra maiuscole e minuscole è l’abbinamento. Ai bambini viene presentata una serie di lettere maiuscole e una serie di lettere minuscole, e devono abbinare le due versioni della stessa lettera.Esempio:Abbina le lettere maiuscole con quelle minuscole corrispondenti:A → a
B → b
C → cQuesto esercizio aiuta i bambini a visualizzare le differenze tra le due forme e a memorizzarle.2. Esercizi di scrittura di parole con maiuscole e minuscoleUn altro esercizio importante è quello di scrivere parole che includono sia lettere maiuscole che minuscole. I bambini possono essere incoraggiati a scrivere i loro nomi, iniziando con una maiuscola e continuando con lettere minuscole. Questo esercizio rafforza il concetto che le maiuscole si usano all’inizio di una parola, ma il resto della parola viene scritto in minuscolo.Esempio:Scrivi il tuo nome iniziando con una maiuscola e continua con le minuscole:Mario, Anna, Luca.3. Esercizi di riconoscimento di maiuscole all’interno di un testoQuesto esercizio prevede di presentare ai bambini un breve testo in cui devono identificare e cerchiare tutte le lettere maiuscole. Questo li aiuta a comprendere il contesto in cui le maiuscole vengono utilizzate, come all’inizio di una frase o per i nomi propri.Esempio di testo:“Marco e Anna giocano al parco. La mamma di Anna li osserva dalla panchina.”Istruzione: Sottolinea tutte le lettere maiuscole nel testo.4. Esercizi di completamentoIn questi esercizi, ai bambini viene chiesto di completare frasi inserendo la lettera maiuscola appropriata all’inizio di una frase o nei nomi propri. Questo tipo di esercizio li aiuta a praticare l’uso corretto delle maiuscole.Esempio:___ucas è andato a scuola.
Oggi è ___artedì.Completamento: Lucas, Martedì.5. Gioco del “Trova l’errore”Un altro esercizio coinvolgente è il “Trova l’errore”, in cui i bambini devono identificare e correggere errori nell’uso delle maiuscole e delle minuscole in un breve testo. Questo esercizio aiuta i bambini a sviluppare un occhio critico per la corretta ortografia.Esempio di testo:“lucia e giorgio sono andati al mare con la loro nonna.”Istruzione: Trova gli errori e riscrivili correttamente.Correzione: Lucia e Giorgio sono andati al mare con la loro nonna.6. Cruciverba di lettere maiuscole e minuscoleI cruciverba sono una risorsa divertente e interattiva per aiutare i bambini a esercitarsi con le lettere. Proponi cruciverba in cui le parole devono essere completate con l’iniziale maiuscola e le restanti lettere in minuscolo. Questo tipo di esercizio stimola la mente dei bambini e li aiuta a interiorizzare l’uso corretto delle lettere.Come rendere gli esercizi di maiuscole e minuscole più divertentiOltre agli esercizi standard, esistono molti modi per rendere l’apprendimento delle lettere maiuscole e minuscole più divertente e coinvolgente per i bambini. Ecco alcuni suggerimenti pratici:1. Lavagna magnetica con lettereLe lavagne magnetiche con lettere sono uno strumento visivo e tattile che permette ai bambini di costruire parole utilizzando lettere maiuscole e minuscole. I bambini possono giocare a formare parole e frasi, imparando così a distinguere tra le diverse forme delle lettere.2. Scrittura creativaIncoraggia i bambini a scrivere brevi racconti o frasi utilizzando lettere maiuscole e minuscole in modo corretto. La scrittura creativa stimola la loro fantasia e permette loro di praticare le regole grammaticali in un contesto più libero e creativo.Esempio:Scrivi una breve storia su un animale che ti piace, usando correttamente le maiuscole all’inizio delle frasi e per i nomi propri.3. Giochi di squadraPuoi rendere l’apprendimento delle lettere maiuscole e minuscole più interattivo attraverso giochi di squadra. Dividi i bambini in gruppi e sfidali a trovare il maggior numero di lettere maiuscole e minuscole in un testo o in un libro. Questo approccio stimola la collaborazione e rende l’apprendimento più dinamico.4. Puzzle alfabeticiI puzzle alfabetici sono un’altra attività divertente che può aiutare i bambini a memorizzare le lettere maiuscole e minuscole. I bambini devono abbinare correttamente le lettere maiuscole con quelle minuscole per completare il puzzle, imparando così a riconoscere visivamente le differenze.ConclusioneGli esercizi per imparare a distinguere lettere maiuscole e minuscole sono fondamentali per sviluppare una solida base di competenze linguistiche nei bambini della scuola primaria. Attraverso attività pratiche come esercizi di abbinamento, dettati, giochi e app educative, i bambini possono imparare in modo divertente e interattivo. Rendere l’apprendimento delle maiuscole e minuscole un’esperienza coinvolgente aiuta i bambini a sviluppare una corretta scrittura e una maggiore fiducia nelle loro capacità.Potete scaricare e stampare gratuitamente in formato PDF gli “Esercizi Per Imparare A Distinguere Lettere Maiuscole E Minuscole, Italiano per la Scuola Primaria“, basta cliccare sul pulsante ‘Download‘:Domande Frequenti su ‘Esercizi Per Imparare A Distinguere Lettere Maiuscole E Minuscole, Italiano per la Scuola Primaria’Che cosa sono gli esercizi per distinguere lettere maiuscole e minuscole?Sono attività educative progettate per insegnare ai bambini a riconoscere e utilizzare correttamente le lettere maiuscole e minuscole dell’alfabeto. Questi esercizi aiutano a sviluppare una comprensione visiva delle differenze tra i due formati e migliorano la capacità di scrittura e lettura.
A chi sono rivolti questi esercizi?Questi esercizi sono ideali per i bambini della scuola primaria, soprattutto per quelli che stanno iniziando a scrivere e leggere, e che hanno bisogno di imparare a usare correttamente maiuscole e minuscole in italiano.
Perché è importante imparare a distinguere le lettere maiuscole e minuscole?È importante perché permette ai bambini di scrivere correttamente frasi e testi, sapendo quando usare le maiuscole (per esempio, all’inizio di una frase o per i nomi propri) e quando usare le minuscole. Aiuta anche a migliorare la lettura e la comprensione dei testi.
Come posso aiutare mio figlio a imparare a distinguere le maiuscole dalle minuscole?Puoi aiutare tuo figlio praticando esercizi quotidiani di scrittura e lettura, utilizzando giochi di abbinamento e schede didattiche. La lettura di libri adatti alla sua età e il riconoscimento delle lettere durante le attività quotidiane può essere molto utile.
Quanto tempo dovrebbero dedicare i bambini a questi esercizi?Si consiglia di dedicare almeno 10-15 minuti al giorno a questi esercizi, specialmente nelle fasi iniziali dell’apprendimento, per rinforzare la conoscenza delle lettere maiuscole e minuscole e per renderli più sicuri nella scrittura.
Questi esercizi sono adatti per bambini con difficoltà di apprendimento?Sì, questi esercizi possono essere facilmente adattati per bambini con difficoltà di apprendimento, utilizzando attività visive e giochi più interattivi che rendano l’apprendimento più accessibile e stimolante.Clicca per votare questo articolo!Maestra di Sostegno – Scuola Primaria

Algoritmo Bubble Sort Python

L’algoritmo bubble sort in Python è l’argomento di questa lezione. Il bubble sort è un algoritmo di ordinamento molto semplice da implementare, ma dobbiamo dire che è anche poco efficiente.

Infatti il bubble sort è utilizzato principalmente in ambito didattico per far apprendere le logiche e le basi della programmazione.

Il funzionamento del bubble sort è questo:

Si confrontano gli elementi vicini tra di loro, portando l’elemento maggiore in ultima posizione durante la prima “passata” (eseguendo n-1 confronti), poi il secondo massimo in penultima posizione e così via finché l’array non è ordinato.

Quindi ad ogni passaggio si inserisce nell’elenco il valore successivo più grande al posto giusto.

La complessità dell’algoritmo è O(n2), sia nel caso peggiore, sia nel caso migliore.

Implementazione dell’algoritmo bubble sort in Python

Implementiamo la soluzione all’algortimo bubble sort in Python in maniera diversa rispetto agli altri linguaggi di programmazione. Questo perchè per lo scambio delle variabili in Python non è necessaria una variabile di appoggio temporanea.

In questa guida tratto l’argomento dello scambio delle variabili. Come scambiare il valore delle variabili

Dunque non sarà necessaria questa operazione:

temp = a;
a = b;
b = temp;

Ma basterà semplicemente scrivere:

a,b = b,a

Questa procedura, detta assegnazione simultanea, mi consente di snellire l’algoritmo bubble sort in Python.

def bubbleSort(array):
for j in range(0, len(array)-1):
for i in range(0, len(array)-1):
if array[i] >array[i+1]:
array[i], array[i+1] = array[i+1], array[i]

array_numbers = [54,26,93,17,77,31,44,55,20]
bubbleSort(array_numbers)

print(array_numbers)

L’algoritmo è molto semplice, basandosi sul confronto di elementi adiacenti.

Ma se l’algoritmo fosse ordinato? In ogni caso dovrei ripetere il ciclo esterno sempre n-1 volte. Possiamo pensare allora a fare delle ottimizzazioni all’algoritmo proposto.

Ottimizzazione dell’algoritmo bubble sort in Python – ordinamento per scambio con sentinella

Possiamo pensare di interrompere il ciclo for esterno, con un break, se al termine del primo ciclo interno non si è fatto alcuno scambio. Per questo scopo utilizziamo una variabile di appoggio chiamata flag, che inizializziamo a 0. Dopo, cambiamo il valore di questa variabile se nel ciclo interno si effettua almeno uno scambio. In alternativa a 0 ed 1 posso usare una variabile booleana.

Ecco il codice di esempio:

def bubbleSort(array):
for j in range(0, len(array)-1):
flag = False
for i in range(0, len(array)-1):
if array[i] >array[i+1]:
array[i], array[i+1] = array[i+1], array[i]
flag = True
if not(flag):
break

array_numbers = [54,26,93,17,77,31,44,55,20]
bubbleSort(array_numbers)

print(array_numbers)

Seconda ottimizzazione dell’algoritmo bubble sort in Python

Possiamo ottimizzare l’algoritmo bubble sort riflettendo sul fatto che ad ogni incremento di j, almeno gli ultimi j+1 elementi sono già stati ordinati. Questo in considerazione del fatto che ad ogni iterazione, l’elemento più grande è stato spostato verso destra.

Quindi ad ogni iterazione accorciamo il ciclo dei confronti. Infatti all’n-esima iterazione si può fare a meno di toccare gli ultimi n-1 elementi che ormai sono nella loro posizione definitiva. Dunque decrementiamo n di uno ad ogni iterazione (- -n), in modo da diminuire di 1, di volta in volta, il numero dei confronti effettuati.

Ecco dunque il codice completo dell’algoritmo ottimizzato:

def bubbleSort(array):
len_array = len(array)
for j in range(0, len_array-1):
flag = False
for i in range(0, len_array-1):
if array[i] >array[i+1]:
array[i], array[i+1] = array[i+1], array[i]
flag = True
len_array = len_array – 1
if not(flag):
break

array_numbers = [54,26,93,17,77,31,44,55,20]
bubbleSort(array_numbers)

Terza ottimizzazione dell’algoritmo bubble sort in Python

Un’ulteriore ottimizzazione all’algoritmo bubble sort in Python può essere sviluppata in considerazione del fatto che il ciclo interno si interrompe proprio dove è avvenuto lo scambio. Quindi, dopo ogni iterazione più elementi si trovano nella posizione definitiva e si può evitare di ordinarli nuovamente.

Occorre memorizzare la posizione ( i+1) dell’ultimo scambio effettuato in una variabile che chiameremo ad esempio pos. Dopo assegniamo alla lunghezza dell’array il valore di pos.

Ecco una possibile implementazione dell’algoritmo ottimizzato:

def bubbleSort(array):
len_array = len(array)
for j in range(0, len_array-1):
flag = False
for i in range(0, len_array-1):
if array[i] >array[i+1]:
array[i], array[i+1] = array[i+1], array[i]
flag = True
pos = i + 1
if not(flag):
break
else:
len_array = pos

print(i,j)

array_numbers = [54,26,93,17,77,31,44,55,20]
bubbleSort(array_numbers)

print(array_numbers)

Conclusioni

In questa lezione ho realizzato alcune implementazioni dell’algoritmo bubble sort in Python, cercando di ottimizzare un algoritmo semplice da implementare, ma lento. Nelle prossime lezioni spiegherò altri algoritmi di ordinamento.

Alcuni link utili

Indice tutorial sul linguaggio Python

1 – Introduzione al linguaggio Python

2 – Le variabili

3 – Operatori aritmetici e di assegnazione

4 – Stringhe

5 – Casting

6 – Input e print

7 – Primi esercizi in Python

8 – Errori in Python

9 – Script Python

10 – Scambio di variabili

11 – Modulo math

Vuoi rimanere aggiornato sulle nuove tecnologie per la Didattica e ricevere suggerimenti per attività da fare in classe?

Sei un docente?

soloscuola.it la prima piattaforma
No Profit gestita dai

Volontari Per la Didattica
per il mondo della Scuola. 

 

Tutti i servizi sono gratuiti. 

Associazione di Volontariato Koinokalo Aps

Ente del Terzo Settore iscritta dal 2014
Tutte le attività sono finanziate con il 5X1000