Pisahkan sebuah string dengan pembatas dengan python


195

Cara membagi string ini di mana __ pembatas

MATCHES__STRING

Untuk mendapatkan hasil ['MATCHES', 'STRING']?



8
Perlu membaca dokumen standar python dan mencoba memahami beberapa program yang dibuat orang lain untuk mulai memahami dasar-dasar Python. Berlatih dan menyalin / memodifikasi adalah alat yang bagus untuk belajar bahasa.
Tony Veijalainen

Jawaban:


327

Anda dapat menggunakan str.splitfungsi ini:string.split('__')

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

1
Saya bertanya-tanya, apa perbedaan antara contoh pertama (hanya menggunakan split ()) dan contoh kedua (dengan for for loop)?
EndenDragon

4
@ EndenDragon Loop for akan secara otomatis berlaku x.strip()dan mengembalikan daftar kecocokan tanpa spasi putih di kedua sisi. Iblis ada dalam perinciannya.
Sébastien Vercammen

Hai, karena ini adalah pertanyaan yang sangat populer, saya mengeditnya untuk hanya menanyakan 1 pertanyaan spesifik dan menghapus bagian dengan spasi di sekitar pembatas karena tidak jelas apa yang diperkirakan terjadi oleh OP (Karena tidak pernah ada pertanyaan dalam pertanyaan). Saya pikir pertanyaan (dan jawaban) lebih bermanfaat dengan cara ini, tetapi jangan ragu untuk mengembalikan semua suntingan jika Anda tidak setuju.
Aran-Fey

4

Anda mungkin tertarik pada csvmodul, yang dirancang untuk file yang dipisahkan koma tetapi dapat dengan mudah dimodifikasi untuk menggunakan pembatas khusus.

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

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

1

Ketika Anda memiliki dua atau lebih (dalam contoh di bawah ini ada tiga) elemen dalam string, maka Anda dapat menggunakan koma untuk memisahkan item-item ini:

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

Setelah baris kode ini, ketiga variabel akan memiliki nilai dari tiga bagian variabel ev

Jadi, jika variabel ev berisi string ini dan kami menerapkan pemisah '@':

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

Kemudian, setelah operasi split variabel

  • tanggal akan memiliki nilai "Sa., 23. März"
  • waktu akan bernilai "19:00"
  • event_name akan memiliki nilai "Klavier + Orchester: SPEZIAL"
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.