Nel guardare alcune stringhe Python e funzioni, ho scoperto questo strano scherzo del pitone:Perché s [len (s) -1: -1: -1] non funziona?
s = "hello"
print s[::-1]
che poi stampe: olleh
Tuttavia, print s[len(s)-1:-1:-1]
non funziona. La mia comprensione è che dovrebbe iterare dall'ultimo elemento s[len(s)-1]
al primo elemento s[0]
. Tuttavia, stampa solo una stringa vuota ''
, che credo sia dovuta a stringhe di una certa lunghezza (ad esempio 5), s[4] == s[-1]
. Ma, non capisco perché Python decida di usare -1
invece di 4
, che è l'attuale len(s)
.
Inoltre, s[len(s):0:-1] + s[0]
opere. Perché len(s)
è un indice valido? Python converte semplicemente len(s)
a 0 arbitrariamente?
P.S. Questo è in Python 2.7.8, non sono sicuro se funziona anche in 3.xx
EDIT: confermato di essere la stessa in Python 3