Prozkoumejte rozličné metody, jak v jazyce Python odstranit poslední znak z textového řetězce.
Využití řezů
Python nabízí flexibilní práci s řezáním (slicing) řetězců, včetně použití negativních indexů. Tyto indexy počítají pozice znaků od konce řetězce, kde -1 reprezentuje poslední znak, -2 předposlední a tak dále. Pomocí negativních indexů můžeme snadno získávat prvky z konce iterovatelné sekvence.
- Index -1 odkazuje na poslední prvek.
- Index -2 odkazuje na předposlední prvek.
- Toto pokračuje až k prvnímu prvku.
Podívejme se na praktický příklad:
name="etechblog.cz" print(name[-1]) print(name[-len(name)])
Tento úryvek kódu vypíše na obrazovku poslední a první znak řetězce, demonstrujíc použití negativních indexů.
Jak tedy odstraníme poslední znak pomocí řezů? Je to jednoduché a efektivní. Využijeme znalosti o tom, jak řezáním extrahovat části řetězce a aplikujeme negativní indexování.
- Vytvoříme řez od začátku řetězce až po předposlední znak.
buggy_name="GeekflareE" name = buggy_name[:-1] print(name)
Klíčová operace se skrývá ve druhém řádku kódu. Klasický řez extrahuje podřetězec od počátečního indexu až po index předcházející koncovému indexu. Toho zde využíváme k odstranění posledního znaku.
Výsledkem tohoto kódu bude výpis „Geekflare“ do konzole.
Metoda rstrip()
Další možností je využití metody `rstrip()`, která odstraňuje zadané znaky z pravé strany řetězce. Můžeme ji tak použít k odstranění posledního znaku. Opět, je to otázka jediného řádku kódu.
- Metodě `rstrip()` předáme poslední znak a získáme řetězec bez tohoto znaku na konci.
Následuje ukázka:
buggy_name="GeekflareE" name = buggy_name.rstrip(buggy_name[-1]) print(name)
Metodě `rstrip()` předáme poslední znak řetězce, který se následně z konce řetězce odstraní. Metoda vrátí novou kopii řetězce bez tohoto znaku.
Po spuštění se v konzoli objeví text „Geekflare“.
Praktické využití: Odstranění posledního slova
Nyní si ukážeme, jak tyto techniky využít v reálném scénáři.
Představme si, že máme textový soubor s více řádky a z každého z nich potřebujeme odstranit poslední slovo.
Pro řešení tohoto problému můžeme postupovat následujícím způsobem:
- Vytvoříme soubor `random_text.txt` s několika řádky textu.
- Inicializujeme prázdný řetězec pro uložení upraveného textu.
- Otevřeme soubor v režimu čtení i zápisu pomocí `with open()`.
- Načteme obsah souboru pomocí `readlines()`.
- Projdeme každý řádek textu:
- Rozdělíme řádek na slova pomocí metody `split()`.
- Odstraníme poslední slovo za použití jedné z výše uvedených metod.
- Spojíme zbylá slova zpět do řetězce.
- Připojíme upravený řádek k proměnné s výsledným textem.
- Smažeme původní obsah souboru metodami `seek()` a `truncate()`.
- Zapíšeme nový obsah do souboru pomocí `write()`.
Soubor `random_text.txt` obsahuje následující řádky:
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.
Následuje kód:
updated_data="" # otevření souboru with open('random_text.txt', 'r+') as file: # načtení obsahu souboru file_content = file.readlines() # iterace přes řádky for line in file_content: # odstranění posledního slova updated_line=" ".join(line.split(' ')[:-1]) # připojení dat k proměnné updated_data += f'{updated_line}n' # smazání starých dat file.seek(0) file.truncate() # zápis nových dat file.write(updated_data)
Po spuštění tohoto kódu bude soubor `random_text.txt` obsahovat upravený text:
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.
Doufám, že vám byl tento tutoriál užitečný.
Přeji příjemné kódování 🙂
Nezapomeňte se také podívat na další operace s podřetězci v Pythonu.
Líbil se vám tento článek? Sdílejte ho s ostatními!