Slicing trong Python là một kỹ thuật dùng để trích xuất một phần của chuỗi, danh sách, tuple, hoặc các kiểu dữ liệu có chỉ mục khác. Slicing cho phép bạn tạo ra một mảng con hoặc chuỗi con từ một đối tượng dữ liệu mà không thay đổi đối tượng gốc.

Cú pháp cơ bản:

sequence[start:stop:step]
  • start: Vị trí bắt đầu của phần tử cần cắt (mặc định là 0).
  • stop: Vị trí kết thúc (không bao gồm phần tử ở vị trí này).
  • step: Bước nhảy giữa các phần tử (mặc định là 1).

1. Cắt chuỗi (String)

Ví dụ cơ bản về slicing trên chuỗi:

text = "Hello, World!"
sliced_text = text[0:5]  # Lấy 5 ký tự đầu tiên
print(sliced_text)  # Output: "Hello"

2. Slicing trên danh sách (List)

Tương tự như chuỗi, bạn có thể sử dụng slicing trên danh sách:

numbers = [1, 2, 3, 4, 5, 6, 7]
subset = numbers[2:5]  # Lấy phần tử từ vị trí 2 đến 4
print(subset)  # Output: [3, 4, 5]

3. Slicing với bước nhảy (Step)

Bạn có thể dùng step để bỏ qua các phần tử trong khi slicing.

numbers = [1, 2, 3, 4, 5, 6, 7]
subset = numbers[::2]  # Lấy các phần tử với bước nhảy là 2
print(subset)  # Output: [1, 3, 5, 7]

4. Slicing với chỉ số âm

Bạn có thể sử dụng chỉ số âm để bắt đầu từ cuối mảng hoặc chuỗi:

text = "Hello, World!"
sliced_text = text[-6:-1]  # Lấy các ký tự từ vị trí -6 đến -2
print(sliced_text)  # Output: "World"

5. Đảo ngược chuỗi hoặc danh sách

Sử dụng slicing với bước nhảy âm để đảo ngược:

text = "Hello"
reversed_text = text[::-1]  # Đảo ngược chuỗi
print(reversed_text)  # Output: "olleH"

Kết luận

Slicing là một công cụ mạnh mẽ trong Python để trích xuất và thao tác dữ liệu mà không cần vòng lặp. Nó được áp dụng cho nhiều kiểu dữ liệu như chuỗi, danh sách, tuple, và ngay cả numpy arrays trong lập trình xử lý dữ liệu.