Odkryj różnorodne techniki usuwania ostatniego znaku z tekstu w języku Python.
Wycinanie fragmentów tekstu
Python umożliwia operowanie na fragmentach ciągów znaków, zarówno za pomocą indeksów dodatnich, jak i ujemnych. Indeksowanie ujemne rozpoczyna się od -1, reprezentującego ostatni element, aż do -(długość_sekwencji). Wykorzystamy tę właściwość, aby selekcjonować elementy od końca sekwencji.
- Indeks -1 odnosi się do ostatniego elementu w kolekcji.
- Indeks -2 wskazuje na przedostatni element.
- Proces ten trwa, aż do osiągnięcia pierwszego elementu.
Przeanalizujmy to na przykładzie.
name = "newsblog.pl" print(name[-1]) print(name[-len(name)])
Powyższy skrypt prezentuje, jak za pomocą indeksowania ujemnego można wydobyć pierwszy i ostatni znak z łańcucha znaków.
Jak zatem, korzystając z wycinania, pozbyć się ostatniego elementu? Wystarczy jedna linijka kodu. Wykorzystując znaną technikę wycinania podciągów, zastosujemy ją z indeksem ujemnym, aby wyodrębnić łańcuch bez ostatniego znaku.
- Wytnij fragment od początku do elementu poprzedzającego ostatni.
buggy_name = "GeekflareE" name = buggy_name[:-1] print(name)
Kluczową rolę odgrywa druga linia kodu. To ona realizuje magiczne cięcie, wyodrębniając fragment od indeksu początkowego do indeksu przedostatniego, ponieważ przy wycinaniu drugi podany indeks jest wykluczany.
W efekcie uruchomienia powyższego kodu otrzymasz na wyjściu „Geekflare”.
Użycie metody rstrip
Metoda `rstrip` usuwa określone znaki z prawej strony ciągu. W związku z tym możemy ją wykorzystać, aby pozbyć się ostatniego znaku. Operacja ta wymaga tylko jednej linii kodu.
- Przekazując ostatni element do metody `strip`, otrzymamy ciąg pozbawiony tego znaku.
Przyjrzyjmy się fragmentowi kodu.
buggy_name = "GeekflareE" name = buggy_name.rstrip(buggy_name[-1]) print(name)
Przekazaliśmy ostatni znak ciągu do metody `rstrip`. Metoda ta usuwa ten znak z końca i zwraca zmodyfikowaną kopię ciągu.
W rezultacie wykonania tego skryptu na konsoli wyświetli się „Geekflare”.
Praktyczny przykład – usuwanie ostatniego słowa
Wykorzystajmy zdobytą wiedzę w realnym scenariuszu.
Załóżmy, że dysponujemy plikiem zawierającym wiele linijek tekstu, a naszym celem jest usunięcie ostatniego słowa z każdej z nich.
Postępuj zgodnie z poniższymi krokami, aby zrealizować to zadanie:
- Utwórz plik o nazwie `random_text.txt` i umieść w nim kilka linijek tekstu.
- Zainicjuj zmienną `dane` jako pusty ciąg.
- Otwórz plik w trybie odczytu i zapisu za pomocą konstrukcji `with open()`.
- Odczytaj zawartość pliku za pomocą metody `readlines()`.
- Przejdź iteracyjnie po każdym wierszu tekstu.
- Podziel każdy wiersz na słowa za pomocą metody `split()`.
- Usuń ostatnie słowo, używając jednej z opisanych wcześniej technik.
- Połącz pozostałe słowa w nowy ciąg.
- Dodaj nowy ciąg do zmiennej `dane`.
- Wyczyść zawartość pliku za pomocą metod `seek()` i `truncate()`.
- Zapisz zaktualizowane dane do pliku za pomocą metody `write()`.
Plik `random_text.txt` zawiera następujące dane:
This is a sample line for testing. LastWord. This is a sample line for testing. KillingIt. This is a sample line for testing. RandomWord. This is a sample line for testing. DeleteIt. This is a sample line for testing. RemovingIt.
Oto kod realizujący zadanie:
updated_data = "" # otwarcie pliku with open('random_text.txt', 'r+') as file: # odczyt zawartości pliku file_content = file.readlines() # iteracja po zawartości for line in file_content: # usuwanie ostatniego słowa updated_line = " ".join(line.split(' ')[:-1]) # dodawanie danych do zmiennej updated_data += f'{updated_line}n' # usunięcie starej zawartości file.seek(0) file.truncate() # zapisanie nowych danych file.write(updated_data)
Po uruchomieniu tego kodu, plik `random_text.txt` będzie zawierał następujące, zmodyfikowane dane:
This is a sample line for testing. This is a sample line for testing. This is a sample line for testing. This is a sample line for testing. This is a sample line for testing.
Mam nadzieję, że ten poradnik okazał się pomocny.
Życzę udanego kodowania 🙂
Zapraszam również do zapoznania się z tematem Operacje na podciągach w Pythonie.
Spodobał Ci się ten artykuł? Zachęcam do podzielenia się nim z innymi!
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.