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ą:

string = "4programmers.net"

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

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:

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!):

string[:4]

zwróci 4pro.

Analogicznie wydzielamy fragmenty od pewnego indeksu do końca:

string[4:]

powinno zwrócić grammers.net.

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

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:

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:

string[1:8:2]

, które zwróci wynik porm

cdn.

0 komentarzy