11.1 Thiết lập chỉ số
Trong Python, việc lấy chuỗi con là một thao tác thường được sử dụng, cho phép xử lý dữ liệu văn bản và trích xuất các phần thông tin quan trọng từ chuỗi. Hãy xem xét một vài cách để lấy chuỗi con, mỗi cách có những đặc trưng và ứng dụng riêng.
Sử dụng slices
Slices — là cách chính để lấy chuỗi con trong Python. Slice trong Python được tạo ra bằng cú pháp
string[start
:stop
:step
],
trong đó:
start
— chỉ số bắt đầu (bao gồm),stop
— chỉ số kết thúc (không bao gồm),step
— bước, với mỗi bước ký tự sẽ được lấy.
Cú pháp slices cho phép chỉ định chỉ số bắt đầu và kết thúc của chuỗi con mà bạn muốn lấy.
text = "Hello, world!"
substring = text[7:12] # Sẽ in: 'world'
11.2 Thiết lập chỉ số không đầy đủ
Không cần phải chỉ định cả ba chỉ số để lấy chuỗi con.
- Nếu
start
bị bỏ qua, slice sẽ bắt đầu từ đầu chuỗi. - Nếu
stop
bị bỏ qua, slice sẽ đi đến cuối chuỗi. - Nếu
step
bị bỏ qua, các ký tự sẽ được lấy từng cái một.
Ví dụ:
Viết ví dụ để lấy chuỗi con bắt đầu từ ký tự thứ 7 và đến cuối chuỗi
text = "Hello, world!"
substring = text[7:] # Sẽ in: 'world!'
Bây giờ từ đầu chuỗi và đến ký tự thứ 10. Hy vọng bạn nhớ rằng ký tự cuối của dải không được bao gồm trong chuỗi con kết quả.
text = "Hello, world!"
substring = text[:10] # Sẽ in: 'Hello, wor'
11.3 Chỉ số âm
Chỉ số âm trong Python cho phép truy cập vào các phần tử của chuỗi bắt đầu từ cuối. Sử dụng chỉ số âm thường làm cho mã dễ đọc và tiện lợi hơn, đặc biệt khi cần làm việc với cuối chuỗi.
Lấy ký tự cuối cùng của chuỗi:
text = "Python"
last_char = text[-1]
print(last_char) # Sẽ in: 'n'
Lấy ký tự áp chót của chuỗi:
text = "Python"
second_last_char = text[-2]
print(second_last_char) # Sẽ in: 'o'
Để lấy ba ký tự cuối của chuỗi:
text = "Python"
last_three = text[-3:]
print(last_three) # Sẽ in: 'hon'
Để lấy chuỗi mà loại bỏ ký tự cuối:
text = "Python"
all_but_last = text[:-1]
print(all_but_last) # Sẽ in: 'Pytho'
Sử dụng nâng cao của slices
Với tham số step
bạn có thể tạo những slices phức tạp hơn, ví dụ, để lấy ký tự theo thứ tự ngược lại:
# Đảo ngược chuỗi
print(text[::-1]) # '!dlrow ,olleH'
GO TO FULL VERSION