2012-10-14 41 views
20

Cách nhanh nhất/sạch nhất để xóa từ đầu tiên của chuỗi là gì? Tôi biết tôi có thể sử dụng split và sau đó lặp lại trên mảng để lấy chuỗi của tôi. Nhưng tôi khá chắc chắn đó không phải là cách tốt nhất để làm điều đó.Xóa từ đầu tiên trong chuỗi Python?

Ps: Tôi khá mới với python và tôi không biết mọi mẹo.

Cảm ơn trước sự giúp đỡ của bạn.

+0

chia nhỏ, bật, tham gia? – Prasanth

Trả lời

48

Tôi nghĩ rằng cách tốt nhất là để phân chia, nhưng hạn chế nó để chỉ có một phân chia bằng cách cung cấp maxsplit tham số:

>>> s = 'word1 word2 word3' 
>>> s.split(' ', 1) 
['word1', 'word2 word3'] 
>>> s.split(' ', 1)[1] 
'word2 word3' 
+1

anh ta muốn xóa từ đầu tiên khỏi chuỗi sao cho lệnh phải là 'a = a.split ('', 1) [1]' –

+0

@IonutHulub Oh, bạn nói đúng. Tôi sẽ chỉnh sửa câu trả lời. – ovgolovin

+0

Làm cách nào để sửa đổi được giới hạn an toàn? – gandolf

0

Giả sử bạn có thể đảm bảo các từ được ngăn cách bởi một không gian duy nhất, str.partition() là những gì bạn đang tìm kiếm.

>>> test = "word1 word2 word3" 
>>> test.partition(" ") 
('word1', ' ', 'word2 word3') 

Mục thứ ba trong bộ là phần bạn muốn.

3

Câu trả lời khác sẽ làm tăng ngoại lệ nếu chuỗi của bạn chỉ có một từ mà tôi cho là không phải là thứ bạn muốn.

Một cách để thực hiện việc này thay vì sử dụng hàm str.partition.

>>> s = "foo bar baz" 
>>> first, _, rest = s.partition(" ") 
>>> rest or first 
'bar baz' 

>>> s = "foo" 
>>> first, _, rest = s.partition(" ") 
>>> rest or first 
'foo' 
11

Một giải pháp ngây thơ sẽ là:

text = "funny cheese shop" 
print text.partition(' ')[2] # cheese shop 

Tuy nhiên, đó sẽ không làm việc trong những điều sau đây (phải thừa nhận là giả tạo) ví dụ:

text = "Hi,nice people" 
print text.partition(' ')[2] # people 

Để xử lý điều này, bạn cần biểu thức chính quy:

import re 
print re.sub(r'^\W*\w+\W*', '', text) 

Nói chung, không thể trả lời một câu hỏi liên quan đến "từ" mà không biết chúng ta đang nói về ngôn ngữ tự nhiên nào. Có bao nhiêu từ là "J'ai"? Làm thế nào về "中华人民共和国"?

Các vấn đề liên quan