Câu trả lời:
Từ các tài liệu :
str.split([sep[, maxsplit]])
Trả về danh sách các từ trong chuỗi, sử dụng sep làm chuỗi phân cách. Nếu maxsplit được đưa ra, hầu hết các phần tách maxsplit được thực hiện (do đó, danh sách sẽ có hầu hết
maxsplit+1
các phần tử).
s.split('mango', 1)[1]
>>> s = "123mango abcd mango kiwi peach"
>>> s.split("mango", 1)
['123', ' abcd mango kiwi peach']
>>> s.split("mango", 1)[1]
' abcd mango kiwi peach'
Đối với tôi cách tiếp cận tốt hơn là:
s.split('mango', 1)[-1]
... bởi vì nếu xảy ra sự cố đó không nằm trong chuỗi bạn sẽ nhận được " IndexError: list index out of range"
.
Do đó, -1
sẽ không có bất kỳ tác hại gây ra số lần xuất hiện đã được đặt thành một.
Bạn cũng có thể sử dụng str.partition
:
>>> text = "123mango abcd mango kiwi peach"
>>> text.partition("mango")
('123', 'mango', ' abcd mango kiwi peach')
>>> text.partition("mango")[-1]
' abcd mango kiwi peach'
>>> text.partition("mango")[-1].lstrip() # if whitespace strip-ing is needed
'abcd mango kiwi peach'
Ưu điểm của việc sử dụng str.partition
là nó sẽ luôn trả về một tuple dưới dạng:
(<pre>, <separator>, <post>)
Vì vậy, điều này làm cho việc giải nén đầu ra thực sự linh hoạt vì luôn có 3 yếu tố trong bộ kết quả.
df.columnname[1].split('.', 1)
Điều này sẽ phân chia dữ liệu với lần xuất hiện đầu tiên của '.' trong giá trị cột chuỗi hoặc khung dữ liệu.
maxsplit
số đếm, phần tử cuối cùng trong danh sách sẽ chứa phần còn lại của chuỗi (đã bao gồm bất kỳsep
ký tự / chuỗi nào).