การ slicing array คือ การเลือกสมาชิกตั้งแต่ 1 ตัวขึ้นไปออกมาจาก array ต่างจากการ indexing เพราะการ slicing สามารถเลือกได้ว่าจะพิมพ์ตั้งแต่สมาชิกตัวไหนถึงตัวไหน ในขณะที่ indexing ทำไม่ได้

รูปแบบของการ slicing

มีตัวเลขที่ต้องระบุ 3 ตัว แต่ละตัวคั่นด้วยเครื่องหมาย colon

[start:end:step]

หากไม่ระบุตำแหน่ง index ใน start จะถือว่าให้เริ่มตำแหน่งที่ 0

สมาชิกตำแหน่งที่ 0-1 คือ 1,2

หากไม่ระบุตำแหน่ง index ใน end จะถือว่าให้นับไปจนตำแหน่งสุดท้ายของ array

สมาชิกตำแหน่งที่ 2 ถึงตำแหน่งสุดท้าย คือ 3,4,5,6,7

หากไม่ระบุว่าจะนับครั้งละเท่าไหร่ ให้ถือว่านับครั้งละ 1 คือนับไปทีละตัว ไม่กระโดด

สมาชิกตำแหน่งที่ 2 ถึงตำแหน่งที่ 5 แบบนับทีละ 1 คือ 3,4,5,6

ตัวอย่างการระบุค่า step

สมาชิกตำแหน่งที่ 0 นับทีละ 2 ไปจนถึงตัวสุดท้าย ได้แก่ 1,3,5,7

ข้อพึงระวัง

ตำแหน่ง start จะมีค่าน้อยกว่า end ไม่ได้ เพราะจะเป็นการนับกลับหลัง จะไม่ได้ผลลัพท์เป็นสมาชิกใดๆเลย

การ Slicing แบบติดลบ

หรือ Negative Slicing เป็นการ slicing หรือนับจากด้านหลังมาด้านหน้า โดยใช้ตัวเลขที่ติดลบ การ slicing แบบติดลบจะไม่มีการติดลบ 0 ดังนั้น เวลา slice แบบนี้ จะนับแบบ -1, -2 ,-3 ไปเลย ไม่ได้เริ่มจาก 0 เหมือน slice ปกติ

สมาชิกตัวที่ 7 นับจากหลังมาหน้าคือ 1 สมาชิกตัวที่ 3 นับจากหลังมาหน้าคือ 5

สมาชิกที่ได้จากการ slicing นี้ คือ 1,2,3,4

ข้อควรจำที่สำคัญ

การ index และ slice ใน Python จะมีที่เรียกว่า exclusive และ inclusive

exclusive คือ นับ แต่ไม่เอา จะไปเอาตัวที่อยู่ก่อนหน้าแทน

inclusive คือ นับและเอาตัวนั้นด้วย

ตัวอย่าง

การนับตัว start จะนับแบบ inclusive ในตัวอย่างนับที่ตำแหน่ง 2 ซึ่งคือสมาชิก 3
การนับตัว end จะนับแบบ exclusive ในตัวอย่างนับที่ตำแหน่ง 6 ซึ่งคือสมาชิก 7 แต่จะเอาแค่สมาชิกที่อยู่ก่อนหน้า 7 ซึ่งคือ 6 เท่านั้น

Advertisement