Ten artykuł ma za zadanie pomóc uczniom w głębszym zrozumieniu, czym są podciągi w języku Python.
Dowiesz się tutaj, jak konstruować podłańcuchy, jak wyodrębniać z nich poszczególne fragmenty oraz jak działają one w Pythonie, wszystko to na praktycznych przykładach. Dodatkowo sprawdzimy, jak określić, czy dany podciąg w ogóle istnieje w dłuższym ciągu znaków.
Zanim zaczniemy, warto uściślić, czym są ciąg i podciąg. Ciąg to po prostu sekwencja znaków Unicode, które mogą być alfanumeryczne lub specjalne. Podciąg natomiast, to po prostu fragment takiej sekwencji.
W tym artykule poruszymy następujące zagadnienia:
- Sposoby tworzenia podciągów.
- Techniki wycinania podciągów.
- Jak zliczać wystąpienia podciągu.
- Jak sprawdzać obecność podciągu w ciągu.
Zaczynajmy!
Generowanie podciągów
Podciągi tworzy się najczęściej za pomocą techniki wycinania (ang. slicing). Umożliwia ona pobranie fragmentu ciągu poprzez zdefiniowanie początkowego i końcowego indeksu, a także opcjonalnego kroku. Dzięki tym parametrom możemy precyzyjnie określić, które znaki mają być wyodrębnione.
Składnia operacji wycinania przedstawia się następująco:
string[indeks_początkowy: indeks_końcowy: krok]
Pamiętaj, że indeksowanie znaków w ciągu w Pythonie zaczyna się od zera.
Parametr `indeks_początkowy` wskazuje, od którego indeksu ma zacząć się podciąg. Jeśli go pominiemy, Python automatycznie przyjmie, że jest to indeks zero.
`indeks_końcowy` wyznacza ostatni indeks podciągu. Jeśli go nie określimy, wycinanie obejmie znaki aż do końca ciągu.
Parametr `krok` określa, co który znak ma być brany pod uwagę. Domyślnie jego wartość wynosi 1, co oznacza, że bierzemy każdy kolejny znak. Jeśli go pominiemy, Python również założy, że krok wynosi 1.
Metody wycinania podciągów
Istnieje kilka sposobów na wyodrębnienie podciągu z ciągu. Oto one:
#1. Wycinanie z użyciem indeksu początkowego i końcowego.
String = string[indeks_początkowy : indeks_końcowy]
Załóżmy, że chcemy pobrać imię z pełnego imienia i nazwiska. Możemy to zrobić w ten sposób:
string = 'Jan Kowalski' print(string[0:3])
W rezultacie otrzymamy:
Jan
#2. Wycinanie tylko z użyciem indeksu początkowego.
String= string[indeks_początkowy:]
W tym przypadku wskazujemy tylko indeks, od którego chcemy rozpocząć wyodrębnianie podciągu. Wyodrębnianie będzie trwać aż do ostatniego indeksu w całym ciągu (czyli zazwyczaj do indeksu -1).
Przykład:
string = 'To jest przykład wycinania łańcucha, wykorzystujący tylko indeks początkowy' print(string[12:])
Wynik:
przykład wycinania łańcucha, wykorzystujący tylko indeks początkowy
#3. Wycinanie tylko z użyciem indeksu końcowego.
String = string[:indeks_końcowy]
Tutaj określamy ostatni znak, który ma być uwzględniony w podciągu, pomijając indeks początkowy. W takim przypadku podciąg rozpocznie się od znaku o indeksie 0.
Przykład:
string = 'To jest przykład wycinania łańcucha, wykorzystujący tylko indeks końcowy' print(string[:11])
Wyjście:
To jest przy
#4. Wycinanie całego ciągu.
String = string[ : ]
W tym przypadku nie określamy żadnych indeksów. Dlatego też zwracany jest cały ciąg.
Przykład:
string = 'To jest przykład wycinania całego łańcucha' print(string[:])
Wyjście:
To jest przykład wycinania całego łańcucha
#5. Wycinanie pojedynczego znaku.
String = string[indeks]
W tym przypadku wycinamy znak, którego indeks dokładnie podaliśmy.
Przykład:
string = 'To jest przykład wycinania pojedynczego znaku z łańcucha' print(string[4])
Zostanie wyświetlony znak ’s’ z 'jest’, ponieważ jego indeks to 4.
#6. Wycinanie z użyciem indeksu początkowego, końcowego i kroku.
Przykład:
string = 'To jest przykład wycinania łańcucha z użyciem indeksu początkowego, kroku i końcowego' print(string[12:27:1])
Jeśli wartość kroku wynosi 1, wycinanie odbywa się standardowo i wypisany zostanie następujący fragment:
wycinania łańcuch
W tym samym przykładzie, zmieńmy wartość kroku na 2.
string = 'To jest przykład wycinania łańcucha z użyciem indeksu początkowego, kroku i końcowego' print(string[12:27:2])
Wycinanie znaków nastąpi teraz co dwa znaki.
wcnia ac
Zatem, z fragmentu „wycinania łańcuch” program wyciął „wcnia ac”.
#7. Odwracanie ciągu za pomocą kroku ujemnego.
W tym przypadku cały ciąg zostanie wyświetlony od ostatniego znaku do pierwszego.
string = 'To jest przykład odwracania łańcucha za pomocą ujemnego kroku' print(string[::-1])
Wyjście:
koprk ogejmu za amhcauł anicawarwdo dzlykp ejst oT
Ujemny krok działa w ten sposób:
R
m
V
m
R
S
m
0
1
2
3
4
5
6
-6
-5
-4
-3
-2
-1
Indeks początkowy odwróconego ciągu domyślnie zaczyna się od 0 i kończy na 6. Ujemny krok odwraca kolejność znaków i stosuje ten sam mechanizm indeksowania.
Jeszcze więcej przykładów wycinania
Pobranie pierwszych czterech znaków podciągu.
string = 'znaki' print(string[0:4])
Wynik:
znak
Sprawdzanie obecności podciągu w ciągu
Python oferuje funkcję `find()` oraz operator `in`, aby sprawdzić, czy podciąg występuje w danym ciągu.
Przykład z użyciem operatora `in`:
string = 'to jest przykładowy łańcuch, w którym sprawdzamy obecność konkretnego podciągu' if 'szukany' in string: print('Podciąg został znaleziony') else: print('Nie znaleziono szukanego podciągu')
Wyjście:
Nie znaleziono szukanego podciągu
Powyższy kod szuka podciągu „szukany” w zdefiniowanym ciągu. Ponieważ podciąg ten nie występuje w ciągu, wyświetlany jest odpowiedni komunikat.
Zmieniając podciąg „szukany” na „w którym” i powtarzając test, otrzymamy „Podciąg został znaleziony”, ponieważ ten podciąg jest obecny w naszym ciągu.
Przykład z użyciem funkcji `find()`:
string = 'używamy łańcucha, aby sprawdzić, czy podciąg jest w nim obecny' if string.find('nieobecny') != -1: print("Podciąg 'nieobecny' istnieje") else: print("Podciąg 'nieobecny' nie istnieje")
Wyjście:
Podciąg 'nieobecny' nie istnieje
W tym przypadku próbowaliśmy znaleźć podciąg, którego nie ma w naszym ciągu. Funkcja `find()` przeszukuje cały ciąg i, nie znajdując podciągu „nieobecny”, zwraca odpowiedni komunikat.
Liczenie wystąpień podciągu
W Pythonie używamy funkcji `count()`, aby policzyć ile razy dany podciąg występuje w ciągu, jak w poniższym przykładzie.
string = " Liczymy liczbę wystąpień litery 'a' w tym łańcuchu " print("Liczba wystąpień podciągu 'a' to: ", string.count('a'));
Wyjście:
Liczba wystąpień podciągu 'a' to: 2
Podsumowanie
Mam nadzieję, że ten artykuł pozwolił Ci lepiej zrozumieć, czym jest podciąg w Pythonie, jak go tworzyć i wycinać. Przećwicz przedstawione przykłady, aby jeszcze lepiej przyswoić tę koncepcję.
Możesz również dowiedzieć się, jak stworzyć grę w zgadywanie liczb w Pythonie lub jak przetwarzać dane JSON w Pythonie.
Udanej nauki!
newsblog.pl
Maciej – redaktor, pasjonat technologii i samozwańczy pogromca błędów w systemie Windows. Zna Linuxa lepiej niż własną lodówkę, a kawa to jego główne źródło zasilania. Pisze, testuje, naprawia – i czasem nawet wyłącza i włącza ponownie. W wolnych chwilach udaje, że odpoczywa, ale i tak kończy z laptopem na kolanach.