Slicing คือการสกัดส่วนหนึ่งของลำดับ (list, tuple, string) โดยใช้ไวยากรณ์ sequence[start:stop:step] เป็นฟีเจอร์ที่มีประสิทธิภาพและย่อมใช้อย่างต่อเนื่องใน Python
Slicing พื้นฐาน
nums = [, , , , , ]
nums[:]
nums[:]
nums[:]
nums[:]
กฎสำคัญ: start รวม stop ไม่รวม (nums[1:4] ให้ดัชนี 1, 2, 3 — ไม่ใช่ 4)
nums[-1] # 5 — last element
nums[-2] # 4 — second to last
nums[-3:] # [3, 4, 5] — last three elements
nums[:-1] # [0, 1, 2, 3, 4] — everything except the last
nums[::2] # [0, 2, 4] — every 2nd element
nums[1::2] # [1, 3, 5] — every 2nd, starting at index 1
nums[::-1] # [5, 4, 3, 2, 1, 0] — REVERSE the sequence (a famous idiom)
nums[::-1] การกลับลำดับเป็นหนึ่งในสำนวนที่จำได้มากที่สุดของ Python
s = "Hello"
s[1:4] # "ell"
s[::-1] # "olleH" — reverse a string
s[0] # "H"
nums = [0, 1, 2, 3, 4]
nums[1:3] = [10, 20, 30] # replace a slice (can change length)
# nums → [0, 10, 20, 30, 3, 4]
nums[10:20] # [] — out-of-range slices return empty, don't crash (unlike nums[10])
ต่างจากการเข้าถึงดัชนีเดียว (ซึ่งเพิ่มขึ้น IndexError) slicing ส่งคืนอย่างสง่างาม
Slicing เป็นฟีเจอร์ที่มีอยู่ทั่วไปและเป็นเอกลักษณ์ของ Python สำหรับการสกัด คัดลอก และกลับลำดับได้อย่างสะอาด
การทำความเข้าใจไวยากรณ์ start:stop:step (โดยเฉพาะอย่างยิ่งการเริ่มต้นรวมถึง/หยุดไม่รวมถึง) ดัชนีลบ (นับจากท้าย) สำนวน reverse ([::-1]) และ slices นั้นปลอดภัย (ไม่มีการล้มเหลวในการออกจากช่วง) ช่วยให้คุณจัดการ list และ string ได้อย่างชาญฉลาดและถูกต้อง
มันแทนที่ loop ที่ยุ่งวุ่นวายสำหรับการดำเนินการทั่วไปและปรากฏในโค้ด Python ที่เป็นสำนวนทั่วโลก