chia chuỗi thành 2 dựa trên lần xuất hiện cuối cùng của dấu phân tách


100

Tôi muốn biết nếu có bất kỳ hàm tích hợp nào trong python để ngắt chuỗi thành 2 phần, dựa trên lần xuất hiện cuối cùng của dấu phân tách.

ví dụ: xem xét chuỗi "abc, d, e, f", sau dấu phân tách qua dấu phân cách ",", tôi muốn đầu ra là

"abc, d, e" và "f".

Tôi biết cách thao tác chuỗi để có được đầu ra mong muốn, nhưng tôi muốn biết liệu có bất kỳ hàm tích hợp nào trong python hay không.

Câu trả lời:


118

Sử dụng rpartition(s). Nó thực hiện chính xác điều đó.

Bạn cũng có thể sử dụng rsplit(s, 1).


11
Không chính xác: "abc, d, e, f" .rpartition (',') -> ('abc, d, e', ',', 'f')
Vanuan 18/03/13

@Vanuan, THỰC SỰ LÀ CHÍNH XÁC. Cũng chỉ trả về dấu phân tách vì lý do này hay lý do khác: str.rpartition (sep) Tách chuỗi ở lần xuất hiện cuối cùng của sep và trả về một bộ 3 chứa phần trước dấu phân tách, chính dấu phân tách và phần sau dấu phân tách . Nếu không tìm thấy dấu phân tách, hãy trả về một bộ 3 chứa hai chuỗi trống, theo sau là chính chuỗi đó.
Petar Ivanov

23
rsplit(s, 1)rpartition(s)đầu ra là khác nhau, bạn phải thừa nhận.
Vanuan


54

Bạn có thể tách một chuỗi theo lần xuất hiện cuối cùng của dấu phân tách với rsplit:

Trả về danh sách các từ trong chuỗi, được phân tách bằng chuỗi dấu phân cách (bắt đầu từ phải).

Để phân chia bằng dấu phẩy cuối cùng:

>>> "a b c,d,e,f".rsplit(',', 1)
['a b c,d,e', 'f']
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.