Krajta

Jak rozdělit řetězce v Pythonu

Jak rozdělit řetězce v Pythonu
Tento článek vysvětlí, jak rozdělit řetězce v pythonu pomocí metod „split ()“ a „partition ()“. Tyto metody jsou obzvláště užitečné, pokud chcete převést větu nebo skupinu slov na analyzovatelné a iterovatelné typy Pythonu. Všechny ukázky kódu v této příručce jsou testovány pomocí Pythonu verze 3.8.6.

Split metoda

Metodu „split ()“ lze použít k rozdělení slov pomocí uživatelem zadaného oddělovače. Vrátí seznam rozdělených slov bez použití oddělovače. Pokud uživatel nezadá žádný oddělovač, použije se jako jeden oddělovač mezery (jeden nebo více).

Například následující kód vrátí jako výstup „['Linux', 'Hint']“:

text = "Nápověda pro Linux"
text.rozdělit()

Níže uvedený kód vrátí „['LinuxHint', 'com']“ jako výstup, když „.”Se používá jako oddělovač:

text = "LinuxHint.com "
text.rozdělit(".”)

Oddělovač nemusí být jediný znak. Metoda split vyžaduje dva argumenty:

Oba tyto argumenty jsou volitelné. Jak již bylo zmíněno výše, pokud není zadán argument „sep“, použije se mezera jako oddělovač rozdělení. Argument „maxsplit“ má výchozí hodnotu „-1“ a ve výchozím nastavení rozděluje všechny výskyty. Zvažte níže uvedený kód:

text = "LinuxHint.co.nás"
text.rozdělit(".”)

Vrátí „['LinuxHint', 'co', 'us']“ jako výstup. Pokud chcete přestat dělení při prvním výskytu oddělovače, zadejte jako argument „maxsplit“ „1“.

text = "LinuxHint.co.nás"
text.rozdělit(".”, 1)

Výše uvedený kód vrátí „['LinuxHint', 'co.nás '] ”jako výstup. Jako druhý argument zadejte počet výskytů, kde chcete zastavit proces rozdělení.

Všimněte si, že pokud existují po sobě jdoucí oddělovače, pro zbývající oddělovače bude po prvním rozdělení vrácen prázdný řetězec (pokud není použit argument „maxsplit“):

text = "LinuxHint ... com"
text.rozdělit(".")

Výše uvedený kód vrátí jako výstup „['LinuxHint',“, „com“] “. Pokud chcete z výsledného seznamu odstranit prázdné řetězce, můžete použít následující příkaz s porozuměním seznamu:

text = "LinuxHint ... com"
výsledek = text.rozdělit(".")
result = [položka pro položku ve výsledku, pokud položka != ""]
tisk (výsledek)

Po spuštění výše uvedeného ukázkového kódu získáte jako výstup „['LinuxHint', 'com']“.

Všimněte si, že metoda „split ()“ se pohybuje zleva doprava a rozděluje řetězce na slova. Pokud chcete rozdělit řetězec zprava doleva, použijte místo toho „rsplit ()“. Jeho syntaxe, použití a argumenty jsou přesně stejné jako u metody „split ()“.

Pokud při použití metod „split ()“ nebo „rsplit ()“ není v řetězci nalezen žádný oddělovač, je vrácen původní řetězec jako jediný prvek seznamu.

Metoda rozdělení

Metodu „partition ()“ lze použít k rozdělení řetězců a funguje stejně jako metoda „split ()“ s některými rozdíly. Nejpozoruhodnějším rozdílem je, že si zachovává oddělovač a zahrnuje jej jako položku do výsledné n-tice obsahující rozdělená slova. To je zvláště užitečné, pokud chcete rozdělit řetězec na iterovatelný objekt (v tomto případě n-tici) bez odstranění jakýchkoli původních znaků. Zvažte níže uvedený kód:

text = "LinuxHint.com "
výsledek = text.rozdělit(".")
tisk (výsledek)

Výše uvedený ukázkový kód vrátí „('LinuxHint', '.',' com ') “jako výstup. Pokud chcete, aby byl výsledek typu seznamu, použijte místo toho následující ukázku kódu:

text = "LinuxHint.com "
výsledek = seznam (text.rozdělit("."))
tisk (výsledek)

Měli byste dostat „['LinuxHint', '.',' com '] “jako výstup po spuštění výše uvedeného ukázkového kódu.

Metoda „partition ()“ vyžaduje pouze jeden argument s názvem „sep“. Uživatelé mohou zadat oddělovač libovolné délky. Na rozdíl od metody „split ()“ je tento argument povinný, takže oddělovač nemůžete vynechat. Můžete však zadat mezery jako oddělovač.

Všimněte si, že metoda oddílu se zastaví při prvním výskytu oddělovače. Pokud tedy váš řetězec obsahuje více oddělovačů, metoda „partition ()“ bude ignorovat všechny ostatní výskyty. Zde je příklad ilustrující toto:

text = "LinuxHint.co.nás"
výsledek = seznam (text.rozdělit("."))
tisk (výsledek)

Ukázka kódu vytvoří „['LinuxHint', '.',' co.nás '] ”jako výstup. Pokud chcete rozdělit všechny výskyty oddělovače a zahrnout oddělovač také do konečného seznamu, možná budete muset použít vzor „Regulární výraz“ nebo „RegEx“. V příkladu uvedeném výše můžete použít vzor RegEx následujícím způsobem:

import re
text = "LinuxHint.co.nás"
výsledek = re.rozdělit("(\.)", text)
tisk (výsledek)

Získáte „['LinuxHint', '.',' co ','.',' us ']] “jako výstup po provedení výše uvedeného ukázkového kódu. Znak tečky byl ve výše uvedeném příkazu RegEx uvozen. Všimněte si, že zatímco výše uvedený příklad funguje s jedním tečkovým znakem, nemusí fungovat se složitými oddělovači a složitými řetězci. Možná budete muset definovat svůj vlastní vzor RegEx v závislosti na vašem případu použití. Tento příklad je zde právě uveden, aby vám poskytl představu o procesu uchování oddělovače v konečném seznamu pomocí příkazů RegEx.

Metoda „partition ()“ může někdy zanechat prázdné řetězce, zvláště když v řetězci, který má být rozdělen, nebyl nalezen oddělovač. V takových případech můžete použít příkazy s porozuměním seznamu k odstranění prázdných řetězců, jak je vysvětleno v části metody „split ()“ výše.

text = "LinuxHint"
výsledek = seznam (text.rozdělit("."))
result = [položka pro položku ve výsledku, pokud položka != ""]
tisk (výsledek)

Po spuštění výše uvedeného kódu byste měli jako výstup dostat „['LinuxHint']“.

Závěr

U jednoduchých a přímých rozdělení můžete k získání iterovatelných typů použít metody „split ()“ a „partition ()“. Pro složité řetězce a oddělovače budete muset použít příkazy RegEx.

Hry Jak nainstalovat a hrát Doom na Linuxu
Jak nainstalovat a hrát Doom na Linuxu
Úvod do Doom Série Doom vznikla v 90. letech po vydání původního Doomu. Byl to okamžitý hit a od té doby herní série získala řadu ocenění a původní Do...
Hry Vulkan pro uživatele Linuxu
Vulkan pro uživatele Linuxu
S každou novou generací grafických karet vidíme, že vývojáři her posouvají hranice grafické věrnosti a přibližují se k fotorealismu. Ale navzdory vešk...
Hry OpenTTD vs Simutrans
OpenTTD vs Simutrans
Vytvoření vlastní simulace dopravy může být zábavné, uvolňující a mimořádně lákavé. Proto se musíte ujistit, že vyzkoušíte co nejvíce her, abyste našl...