2011-07-25 42 views
13

thể trùng lặp:
Is there a way to substring a string in Python?Strip tất cả nhưng trước tiên 5 ký tự - Python

Tôi có một chuỗi dưới dạng 'AAAH8192375948'. Làm cách nào để giữ 5 ký tự đầu tiên của chuỗi này và loại bỏ tất cả các ký tự còn lại? Có phải dạng l.strip có số nguyên âm không? Cảm ơn.

+0

@ user851620 ** strip() ** và ** split() ** là hai chức năng riêng biệt. Bạn có thực sự có nghĩa là ** strip() **? Tôi tự hỏi những gì có nghĩa là _ "dải tất cả các phần còn lại" _. – eyquem

Trả lời

23

Một chuỗi trong Python là sequence type, như danh sách hoặc bộ tuple. Đơn giản chỉ cần lấy 5 ký tự đầu tiên:

some_var = 'AAAH8192375948'[:5] 
print some_var # AAAH8 

Ký hiệu lát là [start:end:increment] - con số này là không bắt buộc nếu bạn muốn sử dụng giá trị mặc định (bắt đầu mặc định là 0, dấu chấm hết cho len (my_sequence) và tăng tới 1). Vì vậy:

sequence = [1,2,3,4,5,6,7,8,9,10] # range(1,11) 

sequence[0:5:1] == sequence[0:5] == sequence[:5] 
# [1, 2, 3, 4, 5] 

sequence[1:len(sequence):1] == sequence[1:len(sequence)] == sequence[1:] 
# [2, 3, 4, 5, 6, 7, 8, 9, 10] 

sequence[0:len(sequence):2] == sequence[:len(sequence):2] == sequence[::2] 
# [1, 3, 5, 7, 9] 

strip loại bỏ một nhân vật hay tập hợp các ký tự từ đầu và cuối của chuỗi - nhập một số tiêu cực chỉ có nghĩa rằng bạn đang cố gắng để loại bỏ các chuỗi đại diện của con số tiêu cực từ chuỗi.

+4

Nó không đúng: chuỗi là các loại trình tự bất biến trong Python. Giải pháp của bạn là chính xác nếu giá trị của slicing được gán lại cho biến đó, tuy nhiên. – brandizzi

+0

@brandizzi - khá chính xác. Tôi đã cập nhật câu trả lời của mình. Cảm ơn! –

+0

Cảm ơn bạn rất nhiều! Điều đó hoạt động hoàn hảo. – bac

4

Bạn đã nghe nói về việc cắt lát chưa?

>>> # slice the first 5 characters 
>>> first_five = string[:5] 
>>> 
>>> # strip the rest 
>>> stripped = string[5:].strip() 
>>> 
>>> # in short: 
>>> first_five_and_stripped = string[:5], string[5:].strip() 
>>> 
>>> first_five_and_stripped 
('AAAH8', '192375948') 
+1

Nó sẽ không chỉ là 'chuỗi [: 5]'? – thegrinner

+0

Tôi thấy những gì bạn đang làm ở đây nhưng có thể hơi khó hiểu với một người chưa biết về ký hiệu slice. – senderle

+0

Trích: Làm thế nào để giữ 5 ký tự đầu tiên của chuỗi này, ** và loại bỏ tất cả các phần còn lại? ** @senderle Đó là lý do tại sao tôi hỏi nếu anh ta đã nghe nói về nó. Nhưng tôi sẽ hoàn thành nó –

5

Tôi giả sử bạn không chỉ có nghĩa là "loại bỏ tất cả mọi thứ trừ 5 ký tự đầu tiên", mà là "giữ 5 ký tự đầu tiên và chạy dải() trên phần còn lại".

>>> x = 'AAH8192375948' 
>>> x[:5] 
'AAH81' 
>>> x[:5] + x[5:].strip() 
'AAH8192375948' 
Các vấn đề liên quan