Napisy (strings)

Wizzie

Kategoria zawiera artykuły, które wymagają dopracowania. Jeżeli możesz - rozbuduj je!

Jeśli artykuł jest już dosyć rozbudowany, ale wciąż nie wyczerpuje tematu, lub zawiera błędy, możesz z kategorii zalążki przepisać go do artykułów do poprawy.

Polecam wykonywać samemu polecenia zamieszczone poniżej, wpisując je bezpośrednio do konsoli Pythona.
Wszystkie przykłady testowane są na Pythonie 3.4, ale większość powinna działać na każdej niearchaicznej wersji.

Wycinanie (wydzielanie) napisów i list (slicing)

W Pythonie wydzielenie części list bądź napisów, zwane slicing jest niezwykle proste. Robimy to podobnie jak odwołujemy się do indeksów - za pomocą kwadratowych nawiasów.

Podstawowe krojenie

Jako przykład weźmy napis "4programmers.net", który będziemy ciachać. Zadeklarujmy zmienną:

Kopiuj
string = "4programmers.net"

Na początek przypomnijmy sobie odwoływanie się do pojedynczych liter w napisie:

Kopiuj
string[4]

powinno zwrócić nam g, piątą literę w napisie (indeksy liczymy od zera!).

Żeby otrzymać napis "4program", czyli pierwsze 8 liter, wykonujemy:

Kopiuj
string[0:8]

Pierwsza liczba w zapisie oznacza indeks, od którego zaczynamy krojenie, a druga to indeks, na którym kończymy. W takim razie dlaczego druga liczba to 8, skoro indeksy liczymy od zera? No cóż, tak jak i wszędzie, tak i w Pythonie wyjątki się zdarzają - ale ma on swój powód, o którym za chwilę.

Możemy także wydzielać fragmenty od początku do pewnego indeksu (pamiętajmy, że fragment wydzielony jest z wyłączeniem podanego indeksu!):

Kopiuj
string[:4]

zwróci 4pro.

Analogicznie wydzielamy fragmenty od pewnego indeksu do końca:

Kopiuj
string[4:]

powinno zwrócić grammers.net.

Zauważmy teraz, że dodanie do siebie dwóch powyższych poleceń:

Kopiuj
string[:4] + string[4:]

daje nam pełny napis 4programmers.net - tutaj tkwi wyjaśnienie wyżej opisanego wyjątku, gdyby nie to, w napisie byłyby dwie litery g.

Indeksy ujemne

Indeks ujemny oznacza, że zamiast do początku odwołujemy się do końca - [-1] oznacza ostatnią literę w wyrazie, [-3] trzecią od końca itd. Zauważ, że -0 jest równe 0, więc ujemne indeksy liczymy od -1. Zgodnie z tą zasadą możemy otrzymać 3 ostatnie litery napisu:

Kopiuj
string[-3:]

Krok

Podczas krojenia możemy użyć trzeciego, opcjonalnego parametru zwanego krokiem (ang. step). Określa on co ile liter "skaczemy" po napisie. Żeby uzyskać co drugą literę znajdującą się pomiędzy indeksem pierwszym (włącznie!) a ósmym (wyłącznie!) wykonujemy polecenie:

Kopiuj
string[1:8:2]

, które zwróci wynik porm

cdn.

0 komentarzy