Jak podzielić sznurki w Python

Jak podzielić sznurki w Python
W tym artykule wyjaśniono, jak podzielić ciągi w Python za pomocą metod „split ()” i „parition ()”. Te metody są szczególnie przydatne, jeśli chcesz przekonwertować zdanie lub grupę słów na parsabilne i iterabalne typy Pythona. Wszystkie próbki kodu w tym przewodniku są testowane z Python wersja 3.8.6.

Metoda podziału

Metodę „split ()” można użyć do dzielenia słów za pomocą separatora określonego użytkownika. Zwraca listę podzielonych słów bez włączenia separatora. Jeśli użytkownik nie określa separatora, Whitespace (jeden lub więcej) jest używany jako pojedynczy separator.

Na przykład poniższy kod zwróci „[„ Linux ”,„ wskazówka ”]” jako wyjście:

text = "Linux wskazówka"
tekst.podział()

Poniższy kod zwróci „[„ Linuxhint ”,„ com ”]” jako wyjście, gdy „.”Jest używany jako separator:

text = "Linuxhint.com "
tekst.podział(".”)

Separator nie musi być jednym znakiem. Metoda podziału przyjmuje dwa argumenty:

  • SEP: Separator do podziału
  • maxsplit: liczba podziałów do zrobienia

Oba te argumenty są opcjonalne. Jak wspomniano powyżej, jeśli argument „SEP” nie jest określony, białespace jest używany jako separator do podziału. Argument „MaxSplit” ma domyślną wartość „-1” i domyślnie dzieli wszystkie zdarzenia. Rozważ kod poniżej:

text = "Linuxhint.współ.nas"
tekst.podział(".”)

Zwróci „[„ Linuxhint ”,„ co ”,„ us ”]” jako wyjście. Jeśli chcesz przestać dzielić się przy pierwszym wystąpieniu separatora, podaj „1” jako argument „MAXSPLIT”.

text = "Linuxhint.współ.nas"
tekst.podział(".”, 1)

Powyższy kod zwróci „[„ Linuxhint ”,„ co.us '] ”jako wyjście. Wystarczy określić liczbę zdarzeń, w których chcesz, aby proces podzielony zatrzymał się jako drugi argument.

Należy zauważyć, że jeśli istnieją kolejne separatory, po pierwszym podzielonym podzielonym rozdzierzeniu pusty ciąg zostanie zwrócony dla pozostałych separatorów (gdy nie jest używany argument „MaxSplit”):

text = "Linuxhint… com"
tekst.podział(".")

Kod powyżej zwróci „[„ Linuxhint ”,„ com ”]” jako wyjście. Jeśli chcesz usunąć puste ciągi z uzyskanej listy, możesz użyć następującej instrukcji rozumienia listy:

text = "Linuxhint… com"
wynik = tekst.podział(".")
wynik = [pozycja dla pozycji w wyniku, jeśli pozycja != ""]
Drukuj (wynik)

Otrzymasz „[„ Linuxhint ”,„ com ”]” jako wyjście po uruchomieniu powyższej próbki kodu.

Zauważ, że metoda „split ()” porusza się od lewej do prawej do podzielonej strun na słowa. Jeśli chcesz podzielić ciąg od prawej do lewego kierunku, zamiast tego użyj „rSplit ()”. Jego składnia, użycie i argumenty są dokładnie takie same jak metoda „split ()”.

Jeśli nie można znaleźć separatora w ciągu metod „split ()” lub „rsplit ()”, oryginalny ciąg jest zwracany jako element listy jedynej.

Metoda partycji

Metodę „parition ()” może być stosowana do podziału ciągów i działa identycznie z metodą „split ()” z pewnymi różnicami. Najbardziej godną uwagi różnicą jest to, że zachowuje separator i zawiera go jako element w wynikającym z tego krążku zawierającym podzielone słowa. Jest to szczególnie przydatne, jeśli chcesz podzielić ciąg na iterabalny obiekt (w tym przypadku krotność) bez usuwania oryginalnych znaków. Rozważ kod poniżej:

text = "Linuxhint.com "
wynik = tekst.przegroda(".")
Drukuj (wynik)

Powyższa próbka kodu zwróci „(„ Linuxhint ”,”.„,„ com ”)” jako wyjście. Jeśli chcesz, aby wynik był typu listy, zamiast tego użyj następującej próbki kodu:

text = "Linuxhint.com "
wynik = lista (tekst.przegroda("."))
Drukuj (wynik)

Powinieneś uzyskać „[„ Linuxhint ”, '.„,„ com ”]” jako wyjście po uruchomieniu powyższej próbki kodu.

Metoda „parition ()” przyjmuje tylko jeden argument o nazwie „SEP”. Użytkownicy mogą określić separator o dowolnej długości. W przeciwieństwie do metody „split ()” ten argument jest obowiązkowy, więc nie można pominąć separatora. Jednak możesz określić białe znak jako separator.

Zauważ, że metoda partycji zatrzymuje się przy pierwszym wystąpieniu separatora. Jeśli więc ciąg zawiera wiele separatorów, metoda „parition ()” zignoruje wszystkie inne wystąpienia. Oto przykład ilustrujący to:

text = "Linuxhint.współ.nas"
wynik = lista (tekst.przegroda("."))
Drukuj (wynik)

Próbka kodu wytworzy „[„ Linuxhint ”,”.', co.us '] ”jako wyjście. Jeśli chcesz podzielić się we wszystkich wystąpieniach separatora i uwzględnić separator również na końcowej liście, być może będziesz musiał użyć wzoru „wyrażenia regularnego” lub „regex”. W wyżej wymienionym przykładzie możesz użyć wzorca regularnego w następujący sposób:

import re
text = "Linuxhint.współ.nas"
wynik = re.podział("(\.) ", tekst)
Drukuj (wynik)

Dostaniesz „[„ Linuxhint ”,”.„,„ co ”, '.„,„ us ”]” jako wyjście po wykonaniu powyższej próbki kodu. Postać DOT została uniknięta w wyżej wymienionym oświadczeniu Regex. Zauważ, że chociaż powyższy przykład działa z jedną postacią kropkową, może nie działać ze złożonymi separatorami i złożonymi strunami. Być może będziesz musiał zdefiniować własny wzór regex w zależności od przypadku użycia. Przykład jest właśnie tutaj wspomniany, aby dać ci wyobrażenie o procesie zachowania separatora na końcowej liście za pomocą instrukcji Regex.

Metoda „partycja ()” może czasem pozostawiać puste sznurki, szczególnie gdy separator nie jest znaleziony w ciągu, który ma być podzielony. W takich przypadkach możesz użyć instrukcji rozumienia listy do usunięcia pustych ciągów, jak wyjaśniono w sekcji metody „split ()” powyżej.

text = "Linuxhint"
wynik = lista (tekst.przegroda("."))
wynik = [pozycja dla pozycji w wyniku, jeśli pozycja != ""]
Drukuj (wynik)

Po uruchomieniu powyższego kodu powinieneś uzyskać „[„ Linuxhint ”]” jako wyjście.

Wniosek

W przypadku prostych i prostych podziałów możesz użyć metod „split ()” i „parition ()”, aby uzyskać iteracyjne typy. W przypadku złożonych strun i separatorów będziesz musiał użyć instrukcji od regularności.