Cắt chuỗi trong Python

Python đã giới thiệu nhiều phương thức thao tác chuỗi cho phép tìm nạp một chuỗi con. Một trong những hoạt động này được gọi là Slice. Toán tử này linh hoạt và tinh tế về mặt cú pháp đến mức chỉ với sự trợ giúp của một vài tham số, người ta có thể tìm nạp nhiều tổ hợp chuỗi con từ một chuỗi. Cắt chuỗi trong lập trình python là tìm nạp một chuỗi con từ một chuỗi đã cho bằng cách cắt nó từ chỉ mục 'bắt đầu' cho đến chỉ mục 'dừng'

Phạm vi bài viết

  • Trong chủ đề này, chúng tôi sẽ giới thiệu về bản thân slice() trong Python
  • Sau đó, chúng ta sẽ thảo luận về cách hoạt động của việc lập chỉ mục trong việc cắt lát
  • Chúng ta cũng sẽ thảo luận về việc sử dụng slice() trong danh sách và bộ

lát cắt()

Python cung cấp cho chúng ta một phương thức slice() để tạo một đối tượng ‘slice’ chứa một tập hợp các chỉ số và giá trị bước ‘start’ & ‘stop’. Để cụ thể về các tham số, đó là (bắt đầu, dừng, bước)

Theo tài liệu chính thức của python về cắt chuỗi trong python. Slice có hai cách triển khai khác nhau, tôi. e. slice có hai phương thức quá tải, mỗi phương thức lấy hai bộ tham số khác nhau

  • slice(stop) // bắt đầu từ 0 & bước từ 1

  • lát (bắt đầu, dừng, bước)

    • bắt đầu. là chỉ mục bắt đầu của chuỗi mà thao tác cắt phải được thực hiện. Nó xác định nơi cắt chuỗi sẽ 'bắt đầu'
    • dừng lại. là chỉ số dừng của quá trình cắt, 'cho đến khi' thao tác cắt nào phải được thực hiện, i. e, chỉ mục dừng bị loại trừ khi tạo chuỗi con
    • bươc. Đó là một đối số tùy chọn xác định các bước khi lặp lại danh sách, tôi. e. nó cho phép chúng ta bỏ qua các yếu tố

Cả hai cách triển khai slice() đều trả về một đối tượng có định dạng slice(start, stop, end). (Kiểm tra ví dụ-1)

Đối tượng được trả về này hiện có thể được sử dụng để cắt các đối tượng chuỗi, danh sách, bộ dữ liệu, bộ, byte hoặc phạm vi

Đăng kí

Ví dụ 1 – Tìm nạp chuỗi con bằng đối tượng lát

s = "Welcome to scaler docs"
s1 = slice(6) # takes start as 0 automatically
print("s1-obj:", s1)
print("s1-res:", s[s1])
s2 = slice(2,8) # using slice(start, end, step) without step
print("s2-obj:", s2)
print("s2-res:", s[s2])
s3 = slice(1, 20, 2) # using slice(start, end, step) with step
print("s3-obj:", s3)
print("s3-res:", s[s3])

đầu ra

s1-obj: slice(None, 6, None)
s1-res: Welcom
s2-obj: slice(2, 8, None)
s2-res: lcome
s3-obj: slice(1, 20, 2)
S3-res: ecm osae o

Giải trình

Slice() có hai cách triển khai, một với một tham số và một với ba tham số. Việc triển khai với một tham số lấy chỉ mục 'dừng' làm tham số bắt buộc và duy nhất trong khi Triển khai với ba tham số cũng lấy chỉ mục 'bắt đầu', chỉ mục 'dừng' và giá trị 'bước' TÙY CHỌN

Trong ví dụ trên ( kiểm tra s1, s2 và s3 trong đoạn mã & đầu ra)

  • trong s1. Lần đầu tiên chúng tôi sử dụng slice() chỉ nhận một tham số 'dừng'. Ở đầu ra, chúng tôi nhận được chuỗi con là “Welcom” vì chỉ mục 'bắt đầu' được đặt tự động thành '0' và 'dừng' được đặt thành 6
  • trong s2. Sau đó, chúng tôi đã sử dụng slice() với một phương thức ba tham số nhưng đã chọn không cung cấp tham số 'bước' tùy chọn. Ở đầu ra, chúng tôi đã nhận được một chuỗi con từ chỉ mục '2' cho đến '7', vì chúng tôi đã cung cấp 'bắt đầu' là '2' & 'dừng' là '8'
  • trong s3. Chúng tôi cũng triển khai slice() với 'step'. Như chúng tôi đã cung cấp 'bước' là 2. Ở đầu ra, chúng tôi đã nhận được một chuỗi con bằng cách tiến tới mọi phần tử thứ 2 bắt đầu từ chỉ mục 1 đến 20

Do đó, bây giờ rõ ràng là giá trị 'bước' xác định giá trị nào mà trình vòng lặp của bạn (trong khi tạo chuỗi con) sẽ tăng hoặc giảm

Ghi chú. hiểu rằng chỉ mục 'dừng' có nghĩa là nó không dừng 'tại' mục này hoặc 'sau' chỉ mục này. Nó dừng ngay trước chỉ số này khi thực hiện cắt lát. Trong khi chỉ mục 'bắt đầu' được bao gồm trong chuỗi được cắt

Cú pháp lập chỉ mục

Cú pháp lập chỉ mục của một lát cắt là cách viết tắt hoặc thay thế tốt hơn của lát cắt () vì nó dễ hiểu và dễ thực hiện hơn. Đó là một trong những thao tác và cú pháp mà bạn đánh giá cao với tư cách là nhà phát triển và tiềm thức tìm cách áp dụng mã của mình vì đây thực sự là một thao tác tuyệt vời

Cú pháp lập chỉ mục

Chuỗi [bắt đầu. dừng lại. bươc]

Vì vậy, ở đây, thay vì tạo một đối tượng lát trước và sau đó triển khai nó trên chuỗi, chúng tôi trực tiếp sử dụng cú pháp lập chỉ mục thực hiện cùng một thao tác

Sao chép Ví dụ-1 với cú pháp lập chỉ mục

Ví dụ 2 – Cú pháp lập chỉ mục cho một lát cắt

s = "Welcome to scaler docs"
print("s1", s[:6])
print("s2", s[2 : 7]) # using indexing syntax for slice(start, end, step) without step
print("s3", s[1 : 20 : 2]) # using indexing syntax for slice(start, end, step)

đầu ra

s1 Welcom
s2 lcome
s3 ecm osae o 

Ghi chú

  • 'Bước' không bao giờ có thể bằng không
  • Sợi dây[. . ] => bắt đầu = 0, dừng = độ dài của chuỗi, bước = 1
  • Chuỗi [2. . ] => bắt đầu = 2, dừng = độ dài của chuỗi, bước = 1
  • Sợi dây[. 2. ] => bắt đầu = 0, dừng = 2, bước = 1
  • Sợi dây[. 6] HOẶC Chuỗi [1. 6] => là các cú pháp hợp lệ vì 'bước' là một tham số tùy chọn cho thao tác này

Lát là một phép toán chỉ cần ba tham số và có thể thực hiện nhiều thao tác khác với nó. Hãy cùng xem một số ví dụ sẽ giải thích nhiều trường hợp sử dụng của toán tử này

Sử dụng chỉ số phủ định

Các chỉ số 'bắt đầu' và 'dừng' và bước có thể có giá trị âm tương ứng. Nhưng các chỉ số âm và 'bước' âm thực sự có tác động gì đối với việc cắt chuỗi trong python? . Xem xét hình dưới đây có một chuỗi và các chỉ số được đánh dấu ở trên và dưới

Ghi chú. Các chỉ số ở phía dưới biểu thị các chỉ số tiêu cực

Cắt chuỗi trong Python

Hãy xem cách chúng ta có thể tìm nạp chuỗi con bằng chỉ số âm. Giả sử chúng ta phải tìm nạp thang chuỗi con. Giả định

S = Chào mừng bạn đến với máy chia tỷ lệ

Cú pháp tìm nạp chuỗi con bằng chỉ số âm sẽ là. S[-6. -1] HOẶC

sliceObject = slice(-6, -1) => S[sliceObject]

(Chỉ số -6 trỏ đến phần tử thứ 6 từ cuối và -1 đến phần tử thứ 1 từ cuối)

Ghi chú. Tham khảo hình-1 cùng với các ví dụ để hiểu ánh xạ ký tự-chỉ mục

Ví dụ 3 – Tìm nạp chuỗi con sử dụng chỉ số âm và giá trị bước âm

s = "Welcome to scaler"
# -x means xth element from the end.
print("indexing syntax without step:", s[-16 : -4])
# using step to fetch every 2nd character from start index until end index
print("indexing syntax with step:", s[-16 : -4 : 2])
# replicating above code using slice object
sliceObj = slice(-16, -4)
print("slice object without step:", s[sliceObj])
sliceObj = slice(-16, -4, 2)
print("slice object with step:", s[sliceObj])

đầu ra

indexing syntax without step: elcome to sc
indexing syntax with step: ecm os
slice object without step: elcome to sc
slice object with step: ecm os

Ví dụ 4 – Slicing với chỉ số dương và âm

s = "Welcome to scaler"
s1 = s[3 : -7]
print("positive start index, negative end index:", s1)
# above slice operation can also be written as
s2 = s[-14 : 10]
print("negative start index, positive end index:", s2)

đầu ra

positive start index, negative end index: come to
negative start index, positive end index: come to

Đảo ngược một chuỗi con bằng cách sử dụng một 'bước' phủ định trong một lát cắt

Có nhiều cách để cắt chuỗi trong python có thể cho phép chúng ta đảo ngược chuỗi. Cắt lát là một trong những cách cho phép chúng ta đảo ngược một chuỗi. Tham số 'Bước' được coi là nhỏ hơn 0 khi đảo ngược chuỗi

GHI CHÚ. Khi đảo chiều. 'bước' < 0, 'bắt đầu' > 'dừng' trong lát cắt (bắt đầu, dừng, bước). Trong khi đó khi không đảo chiều. khi ‘step’ > 0, start Index < stop Index trong lát cắt (bắt đầu, dừng, bước)

Hãy xem xét nhiều ví dụ về cách đảo ngược có thể được thực hiện bằng cách sử dụng lát cắt

Ví dụ 5 – Đảo ngược một chuỗi con sử dụng bước phủ định

________số 8

đầu ra

s1: relacs ot emoclew
s2: rlc teolw
s3:  ot emolew
s4: relacs
s5: relacs
s6:
s7: acs ot emo

Thao tác cắt trên danh sách và bộ dữ liệu

Cách hoạt động của 'lát cắt' hoạt động trên danh sách và bộ dữ liệu tương tự như cách hoạt động với chuỗi. Chuỗi là một tập hợp tuần tự các ký tự trong đó mỗi ký tự có một chỉ mục tương tự nhau; . Dù bằng cách nào, việc cắt lát có thể được thực hiện trên bất kỳ tập hợp các phần tử được sắp xếp nào

Hãy cùng xem một số ví dụ về cắt tập hợp và bộ dữ liệu để tìm nạp danh sách con và bộ dữ liệu con tương ứng

Xét hình sau

Cắt chuỗi trong Python

Ghi chú. Vui lòng tham khảo Hình-2 để hiểu ánh xạ phần tử chỉ mục trong đoạn mã trong Ví dụ-6 & Ví dụ-7

Ví dụ 6 – Thực hiện các thao tác lát trên Danh sách để tìm nạp các danh sách con

s1-obj: slice(None, 6, None)
s1-res: Welcom
s2-obj: slice(2, 8, None)
s2-res: lcome
s3-obj: slice(1, 20, 2)
S3-res: ecm osae o
0

đầu ra

s1-obj: slice(None, 6, None)
s1-res: Welcom
s2-obj: slice(2, 8, None)
s2-res: lcome
s3-obj: slice(1, 20, 2)
S3-res: ecm osae o
1

Ví dụ 7 – Thực hiện các thao tác lát cắt trên Tuple để tìm nạp các bộ dữ liệu con

s1-obj: slice(None, 6, None)
s1-res: Welcom
s2-obj: slice(2, 8, None)
s2-res: lcome
s3-obj: slice(1, 20, 2)
S3-res: ecm osae o
2

đầu ra

s1-obj: slice(None, 6, None)
s1-res: Welcom
s2-obj: slice(2, 8, None)
s2-res: lcome
s3-obj: slice(1, 20, 2)
S3-res: ecm osae o
3

Rõ ràng là thao tác lát cắt các phần tử của một tập hợp. Collection ở đây có thể coi là một dãy các ký tự tạo thành một chuỗi HOẶC một danh sách các phần tử HOẶC một bộ các phần tử. Bất kể bộ sưu tập được sắp xếp có gì, bạn có thể thực hiện cắt trên bộ sưu tập đó để tìm nạp bộ sưu tập con

Sự kết luận

Tóm lại chúng ta hãy nhớ lại việc cắt chuỗi trong python là gì

  • Slice() là một thao tác khá linh hoạt có nhiều kết hợp để cung cấp khi tìm nạp các bộ sưu tập con ra khỏi bộ sưu tập
  • Slice có hai cú pháp khác nhau
    • Nơi mà một đối tượng slice() được tạo ra. e. lát (dừng) HOẶC lát (bắt đầu, dừng, bước)
    • Một cái khác là thuộc tính tốc ký, i. e. Chuỗi [bắt đầu. stop], dễ sử dụng và thực thi hơn
  • 'Bắt đầu' xác định chỉ mục mà thao tác lát cắt sẽ bắt đầu từ đó
  • 'Dừng' xác định chỉ mục cho đến khi việc cắt lát nào được thực hiện. Các yếu tố ngay trước chỉ số 'dừng' sẽ được xem xét
  • 'Bước' xác định các bước khi lặp lại danh sách tôi. e. nó cho phép chúng ta bỏ qua các yếu tố
  • Các chỉ số và các bước có thể có giá trị âm

Nếu chúng ta xem xét một cách tương tự, việc cắt chuỗi trong python không khác gì cắt một ổ bánh mì thực sự trong thế giới thực. Đó là cùng một cảm giác và hoạt động. Phải không?

Python cung cấp cho chúng ta nhiều toán tử và phương thức thanh lịch và dễ đọc về mặt cú pháp, slice là một ví dụ điển hình. Nó có nhiều kết quả để cung cấp, chỉ khi chúng ta học cách áp dụng và thực thi toán tử này cũng như sử dụng các tham số của nó. Hiểu và áp dụng slice bất cứ nơi nào được yêu cầu vì các cú pháp tao nhã như vậy dẫn đến mã rõ ràng và chất lượng

Cắt chuỗi trong python là gì?

Cắt chuỗi trong Python là về lấy chuỗi con từ chuỗi đã cho bằng cách cắt chuỗi tương ứng từ đầu đến cuối .

Chúng ta có thể cắt chuỗi trong python không?

Chuỗi Python hỗ trợ cắt để tạo chuỗi con . Lưu ý rằng chuỗi Python là bất biến, việc cắt tạo chuỗi con mới từ chuỗi nguồn và chuỗi gốc không thay đổi.

chuỗi lát với ví dụ là gì?

Được gọi là cắt chuỗi. Cú pháp mà bạn sử dụng trông thực sự giống với lập chỉ mục. Thay vì chỉ đặt một giá trị trong dấu ngoặc vuông, bạn đặt hai giá trị cùng với dấu hai chấm (. ) ở giữa hai . Vì vậy, trong ví dụ này, s là chuỗi và m và n là hai giá trị.

lát cắt chuỗi là gì?

Định nghĩa và cách sử dụng. Phương thức slice() trích xuất một phần của chuỗi . Phương thức slice() trả về phần được trích xuất trong một chuỗi mới. Phương thức slice() không thay đổi chuỗi gốc. Tham số bắt đầu và kết thúc chỉ định phần của chuỗi cần trích xuất.