W tym artykule postaram się w kilku prostych przykładach wyjaśnić na czym polegają notacje wycinków.
Zacznijmy od prostych przykładów
a[start:stop] # elementy zaczynają się od stop-1
a[start:] # elementy zaczynają się od start do końca tablicy/liście
a[:stop] # elementy zaczynają się od początku tablicy/liście do stop-1
a[:] # kopia całej tablicy/listy
Istnieje również wartość kroku, której można użyć z dowolnym z powyższych:
a[start:stop:step] # element początkowy do elementu stop przez wyznaczony krok (np. co 2 elementy)
Kluczową kwestią do zapamiętania jest to, że wartość :stop reprezentuje pierwszą wartość, której nie ma w wybranym wycinku. Tak więc różnica między stop i start to liczba wybranych elementów (gdzie step (krok) to domyślnie 1).
a[-1] # ostatni element tablicy/listy
a[-2:] # wycinek dwóch ostatnich elementów w tablicy/liście
a[:-2] # wszystko oprócz dwóch ostatnich elementów tablicy/listy
Podobnie step (krok) może być liczbą ujemną:
a[::-1] # wszystkie pozycje w tablicy, odwrócone
a[1::-1] # pierwsze dwie pozycje, odwrócone
a[:-3:-1] # ostatnie dwie pozycje, odwrócone
a[-3::-1] # wszystko oprócz dwóch ostatnich pozycji, odwrócone