Pythonで文字列を区切り文字で分割する


195

この文字列を分割する方法__の区切り文字があるの

MATCHES__STRING

の出力を取得するには['MATCHES', 'STRING']



8
Pythonの標準的なドキュメントを読んで、Pythonの基本を理解するために他の人が作成したいくつかのプログラムを理解することは価値があります。練習とコピー/修正は言語を学ぶための素晴らしいツールです。
Tony Veijalainen、2010

回答:


327

次のstr.split関数を使用できます。string.split('__')

>>> "MATCHES__STRING".split("__")
['MATCHES', 'STRING']

1
最初の例(単にsplit()を使用)と2番目の例(forループを使用)の違いは何ですか?
EndenDragon 2016年

4
@EndenDragon forループは自動的に適用さx.strip()れ、両側に空白なしで一致のリストが返されます。悪魔は細部にいた。
セバスチャン・Vercammen

ねえ、これは非常に人気のある質問なので、特定の質問を1つだけ尋ねるように編集し、区切り文字の周りのスペースを含む部分を削除しました。OPが発生すると予想されることさえ明確ではなかったためです(質問がなかったため、質問)。質問(および回答)はこの方法の方が便利だと思いますが、同意しない場合はすべての編集をロールバックしてください。
2018

4

csvコンマ区切りファイル用に設計されたモジュールに興味があるかもしれませんが、カスタムの区切り文字を使用するように簡単に変更できます。

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

for row in csv.reader( lines ):
    ...

1

文字列に2つ以上の要素(以下の例では3つあります)がある場合、コンマを使用してこれらの項目を区切ることができます。

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

このコード行の後、3つの変数は変数evの 3つの部分からの値を持ちます

したがって、変数evにこの文字列が含まれていて、区切り文字「@」を適用する場合:

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

次に、分割操作の後、変数

  • 日付の値は "Sa.、23.März"になります
  • 時間の値は「19:00」になります
  • event_nameの値は「Klavier + Orchester:SPEZIAL」です。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.