Bài 10. KIỂU DỮ LIỆU CHUỖI/STRING (PHẦN 3: INDEXING, SLICING)

Kiểu dữ liệu chuỗi (String) trong Python P3

I. INDEXING trong python

Trong Python, các ký tự trong  một chuỗi được đánh dấu từ trái sang phải là từ 0 đến n-1 với n là số ký tự trong chuỗi. Ở chiều ngược lại, các ký tự này được đánh dấu từ phải sang trái là -1 đến -n với n là số ký tự trong chuỗi.
Để rõ hơn, chúng tôi mời các bạn xem hình minh họa dưới đây:

Dựa vào phương thức Indexing này, ta có thể truy xuất bất cứ phần tử nào trong chuỗi, thông qua cú pháp: 
<chuỗi>[vị trí truy xuất]
Để rõ hơn, chúng tôi mời các bạn xem ví dụ dưới đây:

Ví dụ 1:
Các câu lệnh:

string1 = “We are Pyan”
print(string1[3])
print(string1[-3])

string2 = “WearePyan”
print(string2[3])
print(string2[-3])
 

 Kết quả trả ra:
a

y
r
y

II. SLICING (cẮT CHUỖI) trong Python

 Trong trường hợp ta muốn truy xuất nhiều phần tử trong chuỗi, ta sẽ sử dụng phương thức Slicing với cú pháp như sau:
 <chuỗi>[Vị trí bắt đầu: vị trí dừng]
Các bạn lưu ý: phương thức Slicing sẽ cắt từ trái sang phải, từ vị trí bắt đầu đến (vị trí dừng – 1).
Để rõ hơn, chúng tôi mời các bạn xem ví dụ dưới đây:

Ví dụ 2:

string1 =”We are Pyan”
print(string1[3:5])
print(string1[-4:-1])
print(string1[1:-1])

 Kết quả trả ra:
ar
Pya
e are Pya

III. Các Trường hợp đặc biệt của Slicing

Sau đây, chúng tôi sẽ giới thiệu 1 số trường hợp đặc biệt của phương thức Slicing:
TH1: Cắt phần tử cuối cùng: như đã đề cập ở trên, phương thức Slicing luôn cắt từ vị trí bắt đầu đến (vị trí dừng trừ 1 đơn vị). Trong trường hợp ta không rõ một chuỗi có bao nhiêu phần tử, để cắt phần tử cuối ta sử dùng vị trí None hoặc để trống.
Ngoài ra, nếu để None ở vị trí bắt đầu, None sẽ được coi như phần tử đầu tiên. Để rõ hơn, chúng tôi mời các bạn xem các ví dụ dưới đây:

Ví dụ 3 
Các câu lệnh:

string1 =”We are Pyan”

print(string1[3:None])
print(string1[3:])
print(string1[None:-1])

Kết quả trả ra:
are Pyan
are Pyan
We are Pya

TH2: Cắt phần tử từ phải sang trái: như đã đề cập ở trên, phương thức slicing luôn cắt từ trái sang phải. Bây giờ, nếu muốn cắt từ phải sang trái, ta sẽ sử dụng câu lệnh với cú pháp:
 <chuỗi>[Vị trí bắt đầu: vị trí dừng: bước]
Nếu ta chọn bước = 1 thì câu lệnh này chính là câu lệnh trong phần II:
 <chuỗi>[Vị trí bắt đầu: vị trí dừng]
Nếu ta chọn bước = 2 thì câu lệnh này sẽ nhảy qua 2 phần tử rồi mới cắt.
Nếu ta chọn bước nhảy = -1 thì câu lệnh sẽ cắt từ phải sang trái.
Để rõ hơn, chúng tôi mời các bạn xem các ví dụ dưới đây:

Ví dụ 4 :
Các câu lệnh:

string1 =”We are Pyan”
print(string1[1:7:2])
print(string1[5:2:-1])
 

Kết quả trả ra:
eae
era

Trong trường hợp ta chọn vị trí bắt đầu bằng None và bước = -1, câu lệnh sẽ coi None là phần tử đầu tiên từ phải sang.
Trong trường hợp ta chọn vị trí dừng bằng None và bước = -1, câu lệnh sẽ coi None là phần tử đầu tiên từ trái sang.
Trong trường hợp ta chọn vị trí bắt đầu và vị trí dừng bằng None và bước = -1, câu lệnh sẽ cắt tất cả phần tử từ phải sang.
Để rõ hơn, chúng tôi mời các bạn xem các ví dụ dưới đây:

Ví dụ 5 :
Các câu lệnh:
string1 =”We are Pyan”

print(string1[None:7:-1])
print(string1[7:None:-1])
print(string1[::-1])

Kết quả trả ra:
nay
P era eW
nayP era eW

IV. Kết Luận

Như vậy, chúng tôi đã tiếp tục giới thiệu tới các bạn các khái niệm cơ bản của Kiểu dữ liệu Chuỗi (String) trong Python. Nếu có vấn đề nào chưa rõ, các bạn hãy liên hệ với chúng tôi để được giúp đỡ.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *