Pewny, [::]
jest operatorem extended slice. to pozwala do podjęcia podciągów.Zasadniczo działa poprzez określenie, które elementy chcesz jako [początek: koniec: krok], i działa dla wszystkich sekwencji.Dwa schludny rzeczy:
- Można pominąć jeden lub więcej elementów i to robi „słusznie”
- liczb ujemnych na początek, koniec i krok ma znaczenie
Na początek i koniec, jeśli daje liczbę ujemną , to znaczy liczyć od końca sekwencji.Na przykład, jeśli mam listę:
l = [1,2,3]
Następnie l[-1]
wynosi 3, l[-2]
wynosi 2, a l[-3]
to 1.
Dla step
argumentu liczba ujemna oznacza pracować wstecz poprzez sekwencja. Tak na liście ::
l = [1,2,3,4,5,6,7,8,9,10]
Można napisać l[::-1]
co zasadniczo oznacza użycie wielkość kroku -1 podczas czytania poprzez listy. Python "zrobi to, co trzeba" podczas wypełniania startu i zatrzymania, więc iteruje listę do tyłu i daje [10,9,8,7,6,5,4,3,2,1]
.
Podałem przykłady z listami, ale ciągi są kolejną sekwencją i działają w ten sam sposób. Tak więc a[::-1]
oznacza zbudować ciąg znaków, łącząc znaki, które otrzymujesz, przechodząc wstecz przez ciąg.
** Proszę SeeAlso **: http: // stackoverflow .com/a/33457266/42223, który adresuje tę funkcję Pythona, którą niektórzy mogą uznać za "dziwaczny". – dreftymac