
In Python, puoi ottenere la lunghezza di una stringa str (= numero di caratteri) con la funzione incorporata len().
In questo articolo vengono descritti i seguenti contenuti.
- Ottieni la lunghezza di una stringa (numero di caratteri) con len()
- Caratteri a larghezza intera ea metà larghezza
- Sequenze di fuga e caratteri speciali
- Interruzioni di riga
Vedere il seguente articolo per l’utilizzo di len() per altri tipi come list.
Ottieni la lunghezza di una stringa (numero di caratteri) con len()
Passando una stringa alla funzione incorporata len(), la sua lunghezza (numero di caratteri) viene restituita come valore intero.
s = 'abcde'
print(len(s))
# 5
Caratteri a larghezza intera ea metà larghezza
Sia i caratteri a larghezza intera che quelli a metà larghezza vengono trattati come un carattere (lunghezza: 1).
s = 'あいうえお'
print(len(s))
# 5
s = 'abcdeあいうえお'
print(len(s))
# 10
Sequenze di fuga e caratteri speciali
In Python, i caratteri speciali come TAB sono rappresentati con una barra rovesciata, come t. La barra rovesciata stessa è rappresentata da \.
Questi caratteri speciali come te \ vengono trattati come un singolo carattere.
s = 'atb\c'
print(s)
# a bc
print(len(s))
# 5
Nelle stringhe grezze in cui le sequenze di escape non vengono trattate in modo speciale, la stringa viene trattata così com’è senza essere interpretata come speciali. Anche il numero di caratteri viene contato così com’è.
s = r'atb\c'
print(s)
# atb\c
print(len(s))
# 7
Inoltre, la sequenza di escape Unicode uXXXX viene trattata come un singolo carattere.
s = 'u3042u3044u3046'
print(s)
# あいう
print(len(s))
# 3
Anche le sequenze di escape Unicode non vengono trattate in modo speciale nelle stringhe grezze.
s = r'u3042u3044u3046'
print(s)
# u3042u3044u3046
print(len(s))
# 18
Interruzioni di riga
Anche n (LF: avanzamento riga) viene trattato come un singolo carattere.
s = 'anb'
print(s)
# a
# b
print(len(s))
# 3
Si noti che se si utilizza rn (CR: Carriage Return + LF: Line Feed), viene contato come due caratteri, re n.
s = 'arnb'
print(s)
# a
# b
print(len(s))
# 4
Se ne rn sono mischiati, il numero di caratteri in ciascuna sezione di nuova riga è diverso.
s = 'abcnabcdrnab'
print(s)
# abc
# abcd
# ab
print(len(s))
# 12
Se ne rn misti, o se non sai viene utilizzato, usa il metodo splitlines(), che viene prodotto un elenco diviso per righe.
print(s.splitlines())
# ['abc', 'abcd', 'ab']
Il numero di elementi nell’elenco recuperato con splitlines() è uguale al numero di righe.
print(len(s.splitlines()))
# 3
Il numero di caratteri in ciascuna riga può essere ottenuto utilizzando la comprensione degli elenchi.
print([len(line) for line in s.splitlines()])
# [3, 4, 2]
Il numero totale di caratteri può essere calcolato con sum().
Qui viene utilizzata una versione del generatore della comprensione dell’elenco (espressione del generatore). Le espressioni del generatore sono racchiuse tra () anziché [], ma quando vengono utilizzate all’interno di () come in questo esempio, () può essere omesso.
print(sum(len(line) for line in s.splitlines()))
# 9
Per ulteriori informazioni sulle interruzioni di riga, vedere l’articolo seguente.