pisahkan string menjadi 2 berdasarkan kemunculan terakhir pemisah

100

Saya ingin tahu apakah ada fungsi bawaan di python untuk memecah string menjadi 2 bagian, berdasarkan kejadian terakhir pemisah.

untuk misalnya: pertimbangkan string "abc, d, e, f", setelah pemisahan pemisah ",", saya ingin hasilnya sebagai

"abc, d, e" dan "f".

Saya tahu bagaimana memanipulasi string untuk mendapatkan output yang diinginkan, tetapi saya ingin tahu apakah ada fungsi bawaan di python.

Yashwanth Kumar
sumber

Jawaban:

118

Gunakan rpartition(s). Itu persis seperti itu.

Anda juga bisa menggunakan rsplit(s, 1).

Petar Ivanov
sumber
11
Tidak persis: "abc, d, e, f" .rpartition (',') -> ('abc, d, e', ',', 'f')
Vanuan
@Vanuan, TEPATNYA sebenarnya. Just juga mengembalikan pemisah karena satu dan lain alasan: str.rpartition (sep) Pisahkan string pada kemunculan terakhir sep, dan kembalikan 3-tupel yang berisi bagian sebelum pemisah, pemisah itu sendiri, dan bagian setelah pemisah . Jika pemisah tidak ditemukan, kembalikan 3-tupel yang berisi dua string kosong, diikuti dengan string itu sendiri.
Petar Ivanov
23
rsplit(s, 1)dan rpartition(s)keluarannya berbeda, Anda harus mengakui.
Vanuan
73
>>> "a b c,d,e,f".rsplit(',',1)
['a b c,d,e', 'f']
Gryphius
sumber
54

Anda dapat memisahkan string dengan kemunculan terakhir pemisah dengan rsplit:

Menampilkan daftar kata dalam string, dipisahkan oleh string pemisah (dimulai dari kanan).

Untuk memisahkan dengan koma terakhir:

>>> "a b c,d,e,f".rsplit(',', 1)
['a b c,d,e', 'f']
wRAR
sumber