Podziel ciąg przez separator w pythonie

195

Jak podzielić ten ciąg, gdzie __jest separator

MATCHES__STRING

Aby uzyskać wynik ['MATCHES', 'STRING']?

Ponton
źródło
8
Warto przeczytać standardowe dokumenty Pythona i starać się zrozumieć kilka programów stworzonych przez inne osoby, aby zacząć rozumieć podstawy języka Python. Ćwiczenie i kopiowanie / modyfikowanie to świetne narzędzia do nauki języka.
Tony Veijalainen,

Odpowiedzi:

327

Możesz użyć str.splitfunkcji:string.split('__')

>>> "MATCHES__STRING".split("__")
['MATCHES', 'STRING']
Adam
źródło
1
Zastanawiałem się, jaka jest różnica między pierwszym przykładem (po prostu za pomocą split ()) a drugim przykładem (z pętlą for)?
EndenDragon
4
@EndenDragon Pętla for automatycznie zastosuje się x.strip()i zwróci listę dopasowań bez białych znaków po obu stronach. Diabeł tkwi w szczegółach.
Sébastien Vercammen
Hej, ponieważ jest to bardzo popularne pytanie, zredagowałem je, aby zadać tylko jedno konkretne pytanie i usunąłem część ze spacjami wokół ogranicznika, ponieważ nie było jasne, czego OP może się spodziewać (ponieważ nigdy nie było pytania pytanie). Myślę, że pytanie (i odpowiedzi) są bardziej przydatne w ten sposób, ale jeśli nie zgadzasz się, możesz cofnąć wszystkie zmiany.
Aran-Fey,
4

Być może interesuje Cię csvmoduł, który jest przeznaczony do plików rozdzielanych przecinkami, ale możesz go łatwo zmodyfikować, aby użyć niestandardowego separatora.

import csv
csv.register_dialect( "myDialect", delimiter = "__", <other-options> )
lines = [ "MATCHES__STRING" ]

for row in csv.reader( lines ):
    ...
Katriel
źródło
1

Jeśli masz dwa lub więcej (w poniższym przykładzie są trzy) elementy w ciągu, możesz użyć przecinka, aby oddzielić te elementy:

date, time, event_name = ev.get_text(separator='@').split("@")

Po tym wierszu kodu trzy zmienne będą miały wartości z trzech części zmiennej ev

Jeśli więc zmienna ev zawiera ten ciąg i zastosujemy separator „@”:

Sa., 23. März @ 19: 00 @ Klavier + Orchester: SPEZIAL

Następnie po operacji podziału zmienna

  • data będzie miała wartość „Sa., 23. März”
  • czas będzie miał wartość „19:00”
  • Nazwa wydarzenia będzie miała wartość „Klavier + Orchester: SPEZIAL”
Siergiej Nasonow
źródło