แยกสตริงเป็น 2 ตามการเกิดครั้งสุดท้ายของตัวคั่น


100

ฉันต้องการทราบว่ามีฟังก์ชันในตัวใน python หรือไม่ที่จะแบ่งสตริงออกเป็น 2 ส่วนตามการเกิดครั้งสุดท้ายของตัวคั่น

สำหรับเช่น: พิจารณาสตริง "abc, d, e, f" หลังตัวคั่น "," ฉันต้องการให้เอาต์พุตเป็น

"abc, d, e" และ "f"

ฉันรู้วิธีจัดการสตริงเพื่อให้ได้ผลลัพธ์ที่ต้องการ แต่ฉันต้องการทราบว่ามีฟังก์ชันที่สร้างขึ้นใน python หรือไม่

คำตอบ:


119

ใช้rpartition(s). มันทำอย่างนั้น

rsplit(s, 1)นอกจากนี้คุณยังสามารถใช้


11
ไม่ตรง: "abc, d, e, f" .rpartition (',') -> ('abc, d, e', ',', 'f')
Vanuan

@ วาวนมันถูกต้องจริงๆ เพียงแค่คืนค่าตัวคั่นด้วยเหตุผลเดียว: str.rpartition (sep) แยกสตริงที่การเกิดครั้งสุดท้ายของ sep และส่งคืน 3-tuple ที่มีส่วนก่อนตัวคั่นตัวคั่นเองและส่วนหลังตัวคั่น . หากไม่พบตัวคั่นให้ส่งคืน 3-tuple ที่มีสตริงว่างสองสตริงตามด้วยสตริงเอง
Petar Ivanov

23
rsplit(s, 1)และrpartition(s)ผลลัพธ์แตกต่างกันคุณต้องยอมรับ
Vanuan


54

คุณสามารถแยกสตริงตามการเกิดครั้งสุดท้ายของตัวคั่นด้วยrsplit:

ส่งคืนรายการคำในสตริงโดยคั่นด้วยสตริงตัวคั่น (เริ่มจากด้านขวา)

ในการแบ่งด้วยลูกน้ำสุดท้าย:

>>> "a b c,d,e,f".rsplit(',', 1)
['a b c,d,e', 'f']
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.