Certo, il [::]
è l'operatore extended slice. Esso consente Fondamentalmente, funziona specificando quali elementi vuoi come [begin: end: step], e funziona per tutte le sequenze Due cose belle a riguardo:
- È possibile omettere uno o più degli elementi e lo fa "la cosa giusta"
- numeri negativi per inizio, fine, e passo hanno un significato
Per iniziare e finire, se si dà un numero negativo , significa contare dalla fine della sequenza.Ad esempio, se ho un elenco:
l = [1,2,3]
Poi l[-1]
è 3, l[-2]
è 2, ed è l[-3]
1.
per l'argomento step
, un numero negativo significa lavorare ritroso attraverso la sequenza. Così, per un elenco ::
l = [1,2,3,4,5,6,7,8,9,10]
Si potrebbe scrivere l[::-1]
che in pratica significa usare un passo di -1 durante la lettura attraverso la lista. Python "farà la cosa giusta" quando riempie l'inizio e l'arresto in modo da scorrere l'elenco all'indietro e ti dà [10,9,8,7,6,5,4,3,2,1]
.
Ho dato gli esempi con le liste, ma le stringhe sono solo un'altra sequenza e funzionano allo stesso modo. Quindi, a[::-1]
significa costruire una stringa unendo i personaggi che ottieni camminando all'indietro attraverso la corda.
** Si prega di seealso **: http: // StackOverflow .com/a/33457266/42223 che affronta questa caratteristica di Python che alcuni potrebbero trovare "eccentrico". – dreftymac