Python - Ordina Arrays
Ciao a tutti, aspiranti programmatori Python! Oggi entreremo nel meraviglioso mondo dell'ordinamento degli array in Python. Non preoccupatevi se siete nuovi alla programmazione: vi guiderò attraverso ogni passaggio con numerosi esempi ed spiegazioni. Alla fine di questo tutorial, ordinerai gli array come un professionista!
Cos'è un Array in Python?
Prima di iniziare con l'ordinamento, parliamo brevemente di cosa sia un array in Python. In Python, tipicamente usiamo delle liste per rappresentare gli array. Una lista è una raccolta di elementi che possono essere di diversi tipi. Per esempio:
fruits = ["mela", "banana", "ciliegia", "data"]
numbers = [42, 8, 15, 16, 23]
Ordina Array Utilizzando un Algoritmo di Ordinamento
Iniziamo con un semplice algoritmo di ordinamento chiamato Bubble Sort. Non è il più efficiente, ma è facile da capire per i principianti.
Bubble Sort
Ecco una semplice implementazione di Bubble Sort:
def bubble_sort(arr):
n = len(arr)
for i in range(n):
for j in range(0, n-i-1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
return arr
# Esempio di utilizzo
numbers = [64, 34, 25, 12, 22, 11, 90]
sorted_numbers = bubble_sort(numbers)
print("Array ordinato:", sorted_numbers)
Spiegazione:
- Definiamo una funzione chiamata
bubble_sort
che prende un array (lista) come input. - Otteniamo la lunghezza dell'array e la memorizziamo in
n
. - Utilizziamo due cicli annidati per confrontare elementi adiacenti.
- Se un elemento è maggiore del successivo, li scambiamo.
- Ripetiamo questo processo fino a quando l'intero array è ordinato.
Quando esegui questo codice, vedrai:
Array ordinato: [11, 12, 22, 25, 34, 64, 90]
Curiosità: Bubble Sort si chiama così perché gli elementi più piccoli "sovrappongono" alla cima della lista ad ogni iterazione!
Ordina Array Utilizzando il Metodo sort() della Lista
Le liste di Python hanno un metodo integrato sort()
che rende l'ordinamento molto più semplice. Vediamo come funziona:
# Ordinamento di numeri
numbers = [64, 34, 25, 12, 22, 11, 90]
numbers.sort()
print("Numeri ordinati:", numbers)
# Ordinamento di stringhe
fruits = ["banana", "ciliegia", "mela", "data"]
fruits.sort()
print("Frutti ordinati:", fruits)
Output:
Numeri ordinati: [11, 12, 22, 25, 34, 64, 90]
Frutti ordinati: ['mela', 'banana', 'ciliegia', 'data']
Il metodo sort()
modifica la lista originale. È come mettere in ordine la tua stanza – tutto finisce in ordine, ma è sempre la tua stanza!
Ordinamento in Ordine inverso
Puoi anche ordinare in ordine decrescente aggiungendo il parametro reverse=True
:
numbers = [64, 34, 25, 12, 22, 11, 90]
numbers.sort(reverse=True)
print("Numeri ordinati (decrescente):", numbers)
Output:
Numeri ordinati (decrescente): [90, 64, 34, 25, 22, 12, 11]
Ordina Array Utilizzando la Funzione sorted()
La funzione sorted()
è un altro strumento potente in Python per l'ordinamento. A differenza di sort()
, non modifica la lista originale ma restituisce una nuova lista ordinata.
# Ordinamento di numeri
numbers = [64, 34, 25, 12, 22, 11, 90]
sorted_numbers = sorted(numbers)
print("Numeri originali:", numbers)
print("Numeri ordinati:", sorted_numbers)
# Ordinamento di stringhe
fruits = ["banana", "ciliegia", "mela", "data"]
sorted_fruits = sorted(fruits)
print("Frutti originali:", fruits)
print("Frutti ordinati:", sorted_fruits)
Output:
Numeri originali: [64, 34, 25, 12, 22, 11, 90]
Numeri ordinati: [11, 12, 22, 25, 34, 64, 90]
Frutti originali: ['banana', 'ciliegia', 'mela', 'data']
Frutti ordinati: ['mela', 'banana', 'ciliegia', 'data']
Pensa a sorted()
come fare una copia della tua lista e ordinare quella copia, lasciando l'originale intatto. È come fare una foto della tua stanza disordinata, quindi organizzare tutto in modo ordinato nella foto mentre la tua stanza reale rimane uguale!
Ordinamento con Chiavi Personalizzate
Una delle caratteristiche più interessanti di sorted()
è la capacità di utilizzare chiavi di ordinamento personalizzate. Supponiamo di voler ordinare una lista di parole in base alla loro lunghezza:
words = ["python", "è", "fantastico", "e", "divertente"]
sorted_words = sorted(words, key=len)
print("Ordinato per lunghezza:", sorted_words)
Output:
Ordinato per lunghezza: ['è', 'e', 'divertente', 'python', 'fantastico']
Qui, abbiamo usato len
come funzione chiave. Python applica questa funzione a ciascun elemento e ordina in base al risultato.
Confronto dei Metodi di Ordinamento
Riassumiamo i metodi di ordinamento che abbiamo appreso in una tabella comoda:
Metodo | Modifica Originale | Restituisce Nuova Lista | Può Usare Chiave Personalizzata |
---|---|---|---|
Bubble Sort | Sì | No | No |
list.sort() |
Sì | No | Sì |
sorted() |
No | Sì | Sì |
Conclusione
Congratulazioni! Hai appena imparato diversi modi per ordinare gli array in Python. Dall'implementazione del tuo algoritmo di ordinamento personale all'uso dei metodi integrati di Python, ora hai gli strumenti per mantenere i tuoi dati organizzati.
Ricorda, ordinare è come organizzare libri su uno scaffale – ci sono molti modi di farlo, e il miglior metodo dipende da ciò che stai cercando di ottenere. Practica con diversi tipi di dati e metodi di ordinamento per diventare un maestro dell'ordinamento in Python!
Buon coding, e che i tuoi array siano sempre perfettamente ordinati! ??
Credits: Image by storyset