0Pricing
Coding Interview Prep · Lezione

sorted() e la funzione key

Ordinare numeri, stringhe e tuple

sorted() e la funzione key è una lezione Coding Interview Prep gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Coding Interview Prep, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Coding Interview Prep include 4 lezioni in totale.

L'ordinamento fa vincere le gare

Molti problemi di programmazione competitiva diventano semplici quando i dati sono ordinati. Il primo strumento da usare è sorted(), che restituisce una nuova lista ordinata. 🏆

sorted() restituisce una copia

Chiamare sorted(nums) lascia intatta la lista originale e restituisce una nuova lista ordinata. È utile quando deve riutilizzare l'input in seguito.

nums = [3, 1, 2]
print(sorted(nums))   # [1, 2, 3]
print(nums)           # [3, 1, 2]

list.sort() ordina sul posto

Quando non le serve conservare l'ordine originale, list.sort() ordina sul posto e restituisce None. In questo modo risparmia memoria con gli array grandi.

nums = [3, 1, 2]
nums.sort()
print(nums)   # [1, 2, 3]

L'ordine predefinito è crescente

Per impostazione predefinita, Python ordina dal più piccolo al più grande. I numeri vanno dal minore al maggiore e le stringhe seguono l'ordine alfabetico, carattere per carattere.

print(sorted(["pear", "apple", "kiwi"]))
# ['apple', 'kiwi', 'pear']

Inverti l'ordine con reverse

Passi reverse=True per ordinare dal più grande al più piccolo. È perfetto quando un passaggio greedy richiede prima gli elementi più grandi.

print(sorted([3, 1, 2], reverse=True))
# [3, 2, 1]

Scopra la funzione key

L'argomento key indica a sort come classificare ogni elemento. Python applica key a ogni elemento e ordina in base ai valori restituiti.

words = ["bb", "a", "ccc"]
print(sorted(words, key=len))
# ['a', 'bb', 'ccc']

key con una lambda

Una piccola lambda permette di ordinare in base a qualsiasi espressione direttamente nel codice. Qui ordiniamo i numeri in base alla loro distanza da zero.

vals = [-5, 2, -1, 3]
print(sorted(vals, key=lambda x: abs(x)))
# [-1, 2, 3, -5]

Ordini gli oggetti in base a un campo

Con tuple o record, imposti key sul campo che conta. Il resto dell'elemento viene mantenuto automaticamente.

people = [("Ann", 30), ("Bob", 25)]
print(sorted(people, key=lambda p: p[1]))
# [('Bob', 25), ('Ann', 30)]

L'ordinamento è stabile

L'ordinamento di Python è stabile: gli elementi con chiavi uguali mantengono il loro ordine relativo originale. Questo permette di concatenare più ordinamenti per risolvere i casi di parità in sicurezza.

key è meglio che confrontare a mano

Una key viene calcolata una sola volta per elemento, quindi resta efficiente anche con input grandi. La scelga invece di scambiare gli elementi manualmente.

L'ordinamento costa O(n log n)

Python ordina in tempo O(n log n). Per n fino a qualche centinaio di migliaia di elementi, rientra comodamente in un limite di un secondo.

Verifica rapida

Le serve una lista ordinata, ma deve conservare intatta quella originale.

Riepilogo

Ora può ordinare i dati con sorted() oppure sul posto, invertire l'ordine con reverse e classificare qualsiasi elemento usando una key. L'ordinamento stabile mantiene ordinate le parità. 🎉

Domande Frequenti

La lezione «sorted() e la funzione key» è gratuita?

Sì — il testo completo di «sorted() e la funzione key» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Coding Interview Prep, passa a CoddyKit PRO. Il corso Coding Interview Prep include 4 lezioni in totale.

Cosa imparerò in «sorted() e la funzione key»?

Ordinare numeri, stringhe e tuple Eserciti Coding Interview Prep con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Coding Interview Prep?

Non è richiesta alcuna esperienza precedente. Coding Interview Prep su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «sorted() e la funzione key»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Coding Interview Prep?

Sì. Ogni lezione Coding Interview Prep include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. sorted() e la funzione key
  2. Ordinare per più campi
  3. Ordine personalizzato con functools.cmp_to_key
  4. Perché ordinare prima sblocca le soluzioni
← Torna a Coding Interview Prep