Chuỗi hỗ trợ cú pháp slicing trong Python để tạo ra chuỗi con (substring). Do chuỗi là kiểu dữ liệu bất biến nên thao tác slicing sẽ tạo một chuỗi mới từ chuỗi gốc và giữ nguyên chuỗi ban đầu.
Slicing trong Python
Cú pháp slicing chuỗi như sau:
str_object[start_pos:end_pos:step]
Slicing bắt đầu từ chỉ số start_pos
(bao gồm) và kết thúc ở chỉ số end_pos
(không bao gồm). Tham số step
dùng để xác định bước nhảy từ chỉ số bắt đầu đến chỉ số kết thúc.
Slicing trong Python luôn tuân theo quy tắc: s[:i] + s[i:] == s
với bất kỳ chỉ số i
nào. Tất cả các tham số trong cú pháp trên đều là tùy chọn, trong đó, mặc định start_pos
là 0, end_pos
là độ dài chuỗi, và step
là 1.
Dưới đây là một số ví dụ đơn giản sử dụng slicing để tạo chuỗi con:
s = 'HelloWorld'
print(s[:])
print(s[::])
Kết quả:
HelloWorld
HelloWorld
Vì không chỉ định tham số nào nên chuỗi con tạo ra giống hệt chuỗi gốc.
Tiếp theo là một vài ví dụ khác về slicing chuỗi:
s = 'HelloWorld'
first_five_chars = s[:5]
print(first_five_chars)
third_to_fifth_chars = s[2:5]
print(third_to_fifth_chars)
Kết quả:
Hello
llo
Lưu ý, chỉ số bắt đầu từ 0, do đó start_pos = 2
tương ứng với ký tự thứ ba trong chuỗi.
Đảo ngược chuỗi bằng slicing
Chúng ta có thể đảo ngược một chuỗi bằng cách đặt giá trị step
là -1:
s = 'HelloWorld'
reverse_str = s[::-1]
print(reverse_str)
Kết quả:
dlroWolleH
Dưới đây là một số ví dụ khác sử dụng bước nhảy và chỉ số âm:
s1 = s[2:8:2]
print(s1)
Kết quả:
loo
Ở đây chuỗi con gồm các ký tự tại các chỉ số 2, 4 và 6.
s1 = s[8:1:-1]
print(s1)
Kết quả:
lroWoll
Ở đây, các giá trị chỉ mục được lấy từ cuối về đầu. Chuỗi con được tạo từ các vị trí có chỉ số 1 đến 7 tính từ cuối chuỗi trở ngược lại.
s1 = s[8:1:-2]
print(s1)
Kết quả:
lool
Slicing trong Python cũng hỗ trợ chỉ số âm. Khi đó, start_pos
sẽ bị loại trừ và end_pos
được bao gồm trong chuỗi con:
s1 = s[-4:-2]
print(s1)
Kết quả:
or
Slicing trong Python xử lý các chỉ số vượt quá độ dài chuỗi một cách an toàn:
>>> s = 'Python'
>>> s[100:]
''
>>> s[2:50]
'thon'
Trên đây là toàn bộ nội dung về cách sử dụng slicing trong Python để tạo chuỗi con.