Thông báo: Download 4 khóa học Python từ cơ bản đến nâng cao tại đây.
Cách cắt (slicing) chuỗi trong Python
Cắt chuỗi (slicing) là một khái niệm nền tảng nhưng đóng vai trò quan trọng trong việc xử lý dữ liệu trong Python. Hiểu và áp dụng đúng slicing không chỉ giúp bạn thao tác linh hoạt với các cấu trúc dữ liệu mà còn tối ưu hóa mã nguồn của bạn. Bài viết dưới đây sẽ cung cấp hướng dẫn chi tiết về cách sử dụng slicing, kèm theo các biến thể phổ biến và ví dụ minh họa cụ thể để bạn dễ dàng nắm bắt.
Về các kiểu dữ liệu dạng chuỗi (Sequence) trong Python
Các kiểu dữ liệu dạng chuỗi trong Python là những kiểu có thể lặp qua và các phần tử của chúng có thể được truy cập thông qua chỉ số (index), ngoại trừ set
và frozenset
.
Slicing dựa trên chỉ số để xác định phần cần trích xuất từ chuỗi.
Do slicing chỉ áp dụng cho các kiểu dữ liệu có thể đánh chỉ số, nên các kiểu dữ liệu sau đủ điều kiện:
Bài viết này được đăng tại [free tuts .net]
list
(danh sách)tuple
(bộ giá trị)bytearray
string
(chuỗi)range
byte sequences
Cú pháp slicing
Cú pháp chung cho slicing:
my_list[start: end: step]
Ngoài ra, bạn cũng có thể sử dụng hàm slice()
:
my_list[slice(start, end, step)]
Giải thích tham số:
start
: Vị trí bắt đầu cắt (chỉ số đầu tiên, tính từ 0).end
: Vị trí kết thúc cắt (không bao gồm chỉ số này).step
: Bước nhảy (số chỉ số cần bỏ qua giữa mỗi phần tử).
Lưu ý: Nếu không cung cấp step
, mặc định sẽ là 1.
Các biến thể của slicing trong Python
Dưới đây là một số cách sử dụng cú pháp slicing:
[:, end]
: Lấy phần tử từ đầu chuỗi đếnend - 1
.[start: ]
: Lấy phần tử từstart
đến hết chuỗi.[:]
: Tạo bản sao của toàn bộ chuỗi.
Với start
và end
Cắt một phần từ vị trí chỉ số start
đến end - 1
.
colors = ["red", "green", "blue", "yellow", "cyan"] print(colors[1: 3])
Kết quả:
['green', 'blue']
Chỉ có end
Cắt từ đầu chuỗi đến vị trí end - 1
.
colors = ["red", "green", "blue", "yellow", "cyan"] print(colors[: 4])
Kết quả:
['red', 'green', 'blue', 'yellow']
Chỉ có start
Cắt từ vị trí start
đến hết chuỗi.
colors = ["red", "green", "blue", "yellow", "cyan"] print(colors[2:])
Kết quả:
['blue', 'yellow', 'cyan']
Bước nhảy (step
) trong slicing trong Python
Tham số step
xác định số bước cần nhảy qua khi cắt chuỗi.
Nếu không cung cấp step
, mặc định là 1 (không bỏ qua chỉ số nào).
Ví dụ với step
colors = ["red", "green", "blue", "yellow", "cyan"] print(colors[: 4: 2])
Kết quả:
['red', 'blue']
Ví dụ với chuỗi
alphabets = "abcdefghijklmnopqrstuvwxyz" print(alphabets[::2])
Kết quả:
acegikmoqsuwy
Tóm tắt các trường hợp slicing
Cú pháp | Ý nghĩa |
---|---|
my_list[start:end] |
Cắt từ chỉ số start đến end - 1 . |
my_list[:end] |
Cắt từ đầu chuỗi đến end - 1 . |
my_list[start:] |
Cắt từ start đến hết chuỗi. |
my_list[start:end:step] |
Cắt từ start đến end - 1 , với bước nhảy là step . |
my_list[:] |
Sao chép toàn bộ chuỗi. |
Kết bài
Slicing là một công cụ mạnh mẽ trong Python, cho phép bạn dễ dàng trích xuất dữ liệu từ các kiểu dữ liệu dạng chuỗi. Tùy thuộc vào nhu cầu, bạn có thể sử dụng slicing linh hoạt với các tham số start
, end
, và step
.
Hy vọng bài viết giúp bạn hiểu rõ hơn và áp dụng thành thạo kỹ thuật slicing trong Python!