การ 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 เท่านั้น