Slicing trong Python: cắt chuỗi và danh sách

Slicing (cắt lát) là một trong những tính năng thanh lịch nhất của Python, cho phép lấy một phần của chuỗi, list hay tuple với cú pháp cực gọn.

Cú pháp cơ bản

ds = [0, 1, 2, 3, 4, 5]
ds[1:4]    # [1, 2, 3]  - từ chỉ số 1 đến trước 4
ds[:3]     # [0, 1, 2]  - từ đầu
ds[3:]     # [3, 4, 5]  - đến cuối
ds[:]      # sao chép toàn bộ

Bước nhảy (step)

ds[::2]    # [0, 2, 4]  - lấy cách 1
ds[::-1]   # [5, 4, 3, 2, 1, 0]  - đảo ngược
ds[1:5:2]  # [1, 3]

Chỉ số âm

ds[-1]     # 5  - phần tử cuối
ds[-3:]    # [3, 4, 5]  - ba phần tử cuối
ds[:-2]    # [0, 1, 2, 3]  - bỏ hai phần tử cuối

Slicing với chuỗi

s = "Python"
s[:3]      # "Pyt"
s[::-1]    # "nohtyP"  - đảo chuỗi

Gán qua slicing (chỉ với list)

ds = [1, 2, 3, 4]
ds[1:3] = [20, 30]   # [1, 20, 30, 4]

Slicing giúp bạn thao tác dữ liệu tuần tự mà không cần vòng lặp. Nắm vững nó là bước tiến lớn tới việc viết code Python “Pythonic”.

Lên đầu trang