HOWTO · Python
Elenca l'alfabeto in Python
Questo articolo mostra come elencare tutto l'alfabeto in Python
In questa pagina
Per memorizzare in una lista Python le 26 lettere minuscole dell’alfabeto inglese, converti la costante stringa della libreria standard string.ascii_lowercase con list(). Il risultato è una lista con un carattere per elemento. È la soluzione più chiara quando ti serve una sequenza già pronta con l’alfabeto inglese.
Crea una lista con string.ascii_lowercase
Il modulo Python string fornisce costanti per gruppi di caratteri comuni. string.ascii_lowercase è la stringa abcdefghijklmnopqrstuvwxyz; convertendola con list() ottieni una lista delle sue 26 lettere. Importa string prima di usare la costante.
Esegui questo esempio:
Il codice e le etichette o gli output visibili in questa sezione restano in inglese.
import string
letters = list(string.ascii_lowercase)
print(letters)
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
Per le lettere inglesi maiuscole, usa string.ascii_uppercase nella stessa espressione. Queste costanti sono stringhe, quindi list() le suddivide in caratteri: diventano liste solo dopo la conversione.
Genera lettere con range() e map()
Puoi anche creare la lista a partire dai punti di codice dei caratteri. La funzione range() genera interi a partire dal valore iniziale fino a quello finale, senza includere quest’ultimo. La funzione map() applica un’altra funzione a ogni elemento di un iterabile. In questo caso, map(chr, ...) converte ogni intero nel carattere corrispondente e list() raccoglie i risultati.
Esegui questo esempio:
Il codice e le etichette o gli output visibili in questa sezione restano in inglese.
letters = list(map(chr, range(97, 123)))
print(letters)
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
Nell’ASCII, le lettere minuscole dell’alfabeto inglese hanno punti di codice da 97 a 122. Poiché range() esclude il valore finale, usa 123 per includere il punto di codice di z (122). Se il valore finale fosse 122, la lista generata terminerebbe con y.
Genera lettere con ord() e una list comprehension
Una list comprehension esprime direttamente la stessa conversione. La funzione ord() restituisce il punto di codice Unicode di un carattere, mentre chr() converte un punto di codice in un carattere. Partire da ord("a") e fermarsi dopo ord("z") evita di dover scrivere a mano i valori numerici.
Esegui questo esempio:
Il codice e le etichette o gli output visibili in questa sezione restano in inglese.
letters = [chr(code_point) for code_point in range(ord("a"), ord("z") + 1)]
print(letters)
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
Il + 1 include il punto di codice di z, perché il valore finale di range() resta escluso. Questa versione è utile quando il carattere iniziale o finale deve provenire da una variabile o da un altro dato in ingresso.
Scegli un metodo e considera l’intervallo dei caratteri
Usa string.ascii_lowercase per ottenere una lista concisa e leggibile delle 26 lettere minuscole dell’alfabeto inglese; per le maiuscole, scegli string.ascii_uppercase. L’approccio con range() e map(), insieme alla list comprehension con ord(), mostra come funziona la conversione dei caratteri ed è più facile da adattare quando vuoi una sequenza definita da estremi specifici.
Questi esempi riguardano l’alfabeto inglese, le cui lettere occupano un intervallo consecutivo nell’ASCII. In Python, ord() e chr() operano sui punti di codice Unicode, non solo sull’ASCII. Tuttavia, incrementare i punti di codice a partire da un estremo non genera gli alfabeti di tutti i sistemi di scrittura: molti contengono caratteri al di fuori di questo intervallo oppure non formano un’unica sequenza consecutiva. Per un altro alfabeto, definisci esplicitamente la sequenza di caratteri che ti serve invece di presumere che corrisponda a un intervallo numerico.