Hàm slice() trong Python

Tiếp tục với chủ đề các hàm tích hợp sẵn trong Python, bài viết sẽ giới thiệu cho các bạn về hàm slice() với cú pháp, cách sử dụng cũng như các ví dụ cụ thể. Mời bạn đọc theo dõi.

Hàm slice() trong Python trả về một slice object. Đối tượng này giúp bạn xác định cách cắt một chuỗi có sẵn (có thể là string, bytes, tuple, list, range) hoặc các đối tượng hỗ trợ giao thức chuỗi (như _getitem__(), __len__()).

Cú pháp hàm slice() trong Python:

slice(stop)
slice(start, stop, step)

Các tham số của hàm slice()

Hàm slice() có thể có tới 3 tham số:

  • start: Một số nguyên chỉ định vị trí bắt đầu cắt đối tượng. Mặc định là 0.
  • stop: Một số nguyên chỉ định vị trí kết thúc cắt đối tượng.
  • step: Một số nguyên chỉ định mức tăng giữa mỗi lần cắt. Giá trị mặc định là 1.

Nếu chỉ truyền một tham số vào slice() thì start và step không có giá trị.

Giá trị trả về từ slice()

Hàm slice() trả về một slice object sử dụng để cắt một chuỗi theo các chỉ mục tương ứng truyền trong hàm.

Ví dụ 1: Tạo một slice object để cắt

# chứa các chỉ số (0, 1, 2)
print(slice(3))

# chứa các chỉ số (1, 3)
print(slice(1, 5, 2))

Khi bạn chạy chương trình, output trả về sẽ là:

slice(None, 3, None)
slice(1, 5, 2)

Ví dụ 2: Nhận chuỗi con từ một chuỗi đã cho bằng cách sử dụng slice object

pyString = 'Python'

# chứa các chỉ số (0, 1, 2)
# vd P, y và t
sObject = slice(3)

print(pyString[sObject])

# chứa các chỉ số (1, 3)
# vd y và h
sObject = slice(1, 5, 2)

print(pyString[sObject])

Giá trị trả về:

Pyt
yh

Ví dụ 3: Nhận chuỗi con từ một chuỗi đã cho bằng cách sử dụng chỉ mục âm

pyString = 'Python'

# chứa các chỉ số (-1, -2, -3)
# vd n, o và h
sObject = slice(-1, -4, -1)

print(pyString[sObject])

Output trả về sẽ là:

noh

Ví dụ 4: Cắt lát list và tuple

pyList = ['P', 'y', 't', 'h', 'o', 'n']
pyTuple = ('P', 'y', 't', 'h', 'o', 'n')

# chứa các chỉ số (0, 1, 2)
# vd P, y và t
sObject = slice(3)

# cắt list
print(pyList[sObject])

# chứa các chỉ số (1, 3)
# vd y và h
sObject = slice(1, 5, 2)

# cắt tuple
print(pyTuple[sObject])

Kết quả trả về:

['P', 'y', 't']
('y', 'h')