76
Rozdział 2.
Początek, koniec, krok
Listy „rozumieją” początek, koniec i krok
Pojęcia
początku
,
końca
i
kroku
zaprezentowaliśmy po raz pierwszy w poprzednim rozdziale
przy okazji omawiania trzyargumentowej wersji funkcji
range
.
obiekt
obiekt
obiekt
obiekt
obiekt
Lista
0
1
2
3
4
Wartość POCZĄTEK zapewnia kontrolę nad tym, GDZIE zakres się zaczyna.
W przypadku list wartość
początek
wskazuje początkową wartość indeksu.
Wartość KONIEC zapewnia kontrolę nad tym, KIEDY zakres się kończy.
W przypadku list wartość
koniec
wskazuje wartość indeksu, na którym należy się
zatrzymać, jednak sama ta wartość
nie wschodzi w skład
definiowanego zbioru.
Wartość KROK zapewnia kontrolę nad tym, JAK zakres jest generowany.
W przypadku list wartość
krok
odnosi się do „przeskoku”, jaki należy zrobić.
Wywołanie funkcji
range przyjmuje trzy
argumenty: początek,
koniec i krok.
Przypomnij sobie znaczenie
początku
,
końca
i
kroku
dla określania zakresów
(spróbujmy też odnieść je do list):
Wartości początku, końca i kroku można umieszczać w nawiasach kwadratowych
W przypadku list
początek
,
koniec
i
krok
określa się w obrębie nawiasów kwadratowych,
a odpowiednie wartości rozdziela się za pomocą znaku dwukropka (
:
).
letters[
początek
:
koniec
:
krok
]
Może się to wydawać nieco sprzeczne z intuicją, ale wszystkie te trzy wartości opcjonalne,
gdy wykorzystuje się je razem. I tak:
Gdy nie określi się
początku
, przyjmuje on standardową wartość
0
.
Gdy nie określi się
końca
, przyjmuje on maksymalną wartość dopuszczalną dla listy.
Gdy nie określi się
kroku
, przyjmuje on standardową wartość
1
.
Notacja wykorzystująca nawiasy
kwadratowe obejmuje możliwość
stosowania wartości początku,
końca i kroku
jesteś tutaj
77
Dane
obiekt
obiekt
obiekt
obiekt
obiekt
Lista
0
1
2
3
4
Wycinki list w akcji
Korzystając z istniejącej listy
letters
, którą przedstawiliśmy Ci na jednej z poprzednich stron,
możesz na różne sposoby określać wartości
początku
,
końca
i
kroku
.
Przyjrzyjmy się kilku przykładom.
>>> letters
[‘P’, ‘o’, ‘d’, ‘a’, ‘j’, ‘ ‘, ‘j’, ‘a’, ‘j’, ‘k’, ‘o’, ‘!’]
>>> letters[0:10:3]
[‘P’, ‘a’, ‘j’, ‘k’]
>>> letters[3:]
[‘a’, ‘j’, ‘ ‘, ‘j’, ‘a’, ‘j’, ‘k’, ‘o’, ‘!’]
>>> letters[:10]
[‘P’, ‘o’, ‘d’, ‘a’, ‘j’, ‘ ‘, ‘j’, ‘a’, ‘j’, ‘k’]
>>> letters[::2]
[‘P’, ‘d’, ‘j’, ‘j’, ‘j’, ‘o’]
Co trzecia litera od początku listy do
litery znajdującej się na pozycji wskazywanej
przez indeks 10 (ale bez niej samej)
Wszystkie znaki od
początku listy do litery
znajdującej się na pozycji
wskazywanej przez indeks
10 (ale bez niej samej)
Wszystkie znaki z wyjątkiem
trzech pierwszych, które
zostały pominięte
Co druga litera z listy
Korzystanie z wartości początku, końca i kroku oraz notacji wycinka w stosunku do list daje
ogromne możliwości w zakresie ich przetwarzania (nie wspominając już o tym, jak bardzo jest
wygodne). Dlatego radzimy Ci poświęcić trochę czasu na dokładne zrozumienie, co się dzieje
w powyższych przykładach. Spróbuj wprowadzić je w swojej powłoce po znaku zachęty
>>>
i nie
bój się eksperymentować z notacją, ponieważ możesz się dzięki temu sporo nauczyć.
Wszystkie litery
P
: Tutaj co prawda nie ma takiego przypadku, ale podczas swoich eksperymentów zauważyłem, że niektóre znaki
ujęte w pojedyncze cudzysłowy, podczas gdy inne znajdują się w podwójnych. Czy istnieje jakiś standard, którego
powinienem się tu trzymać?
O
:
Nie, nie istnieje jeden standard zapisu, a Python umożliwia Ci zastosowanie zarówno pojedynczych, jak i podwójnych cudzysłowów
podczas definiowania łańcuchów znakowych o dowolnej długości, w tym również takich, które składają się z pojedynczych znaków
(a więc takich jak te, które widzisz na niniejszej stronie; z technicznego punktu widzenia są one bowiem jednoznakowymi łańcuchami, a nie
literami). Większość programistów korzystających z Pythona do ograniczania łańcuchów znakowych używa pojedynczych cudzysłowów
(nie jest to jednak reguła, lecz wyłącznie kwestia indywidualnych upodobań). Jeśli łańcuch zawiera znak pojedynczego cudzysłowu, można
zastosować podwójne cudzysłowy, aby uniknąć konieczności używania sekwencji ucieczki zawierających znak ukośnika wstecznego (\),
ponieważ większość osób uważa, że łatwiej jest przeczytać ciąg ”’” niż ‘\’’. Więcej przykładów zastosowania obydwu rodzajów
cudzysłowów znajdziesz na dwóch następnych stronach.
głupie pytania
Nie istnieją

Get Python Rusz głową! Wydanie II now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.