การตัดหรือหั่นข้อมูล (Slicing) ข้อความ (Strings) ในภาษา Python
การตัดหรือหั่นข้อมูล (slicing) คือการเลือก subset ของข้อมูลจากตัวแปรใหญ่โดยการใช้ตัวดำเนินการ slicing ในภาษา Python นั้นใช้วงเล็บเหลี่ยม [ ] เพื่อส่งต่อส่วนที่เลือก โดยใช้ colon (:) เพื่อระบุช่วงของตัวอักษรหรือตัวเลขที่เราต้องการ
การตัดหรือหั่นข้อมูล (slicing) ในภาษา Python เป็นวิธีการที่ใช้ตัดข้อมูลในลักษณะเฉพาะ โดยการกำหนดตำแหน่ง (index) ของตัวอักษรในข้อความ (string) ที่ต้องการตัดหรือหั่น ด้วยเครื่องหมาย [:]. รูปแบบการใช้งาน slicing ในภาษา Python ดังนี้
string[start:end:step]
โดย:
start
: จุดเริ่มต้นของการตัด (เริ่มจาก 0 ถ้าไม่ได้ระบุ)end
: จุดสิ้นสุดของการตัด (ไม่รวมตำแหน่งนี้)step
: การเลื่อนขั้นตอนที่ต้องการตัด (เริ่มจาก 1 ถ้าไม่ได้ระบุ)
ตัวอย่างเช่น สำหรับข้อความ “Hello, world!” เราสามารถใช้ slicing เพื่อดึงคำว่า “world” ออกมาได้โดยใช้โค้ดดังนี้
string = "Hello, world!"
result = string[7:12]
print(result)
ผลลัพธ์ที่ได้คือ
world
การใช้งาน slicing ในภาษา Python นั้นยังสามารถใช้ค่าลบ (-) เพื่อแสดงตำแหน่งจากท้ายของข้อความเช่นกัน ตัวอย่างเช่น
string = "Hello, world!"
result = string[-6:-1]
print(result)
ผลลัพธ์ที่ได้ คือ
world
ตัวอย่าง การใช้งาน Slicing ใน Python สำหรับข้อมูลประเภทข้อความ (Strings) ดังนี้
str = "Hello, World!"
print(str[1]) # เลือกตัวอักษรตัวที่ 2 ของ string คือ "e"
print(str[2:5]) # เลือกตั้งแต่ตัวอักษรที่ 3 จนถึงตัวอักษรที่ 5 ของ string คือ "llo"
print(str[:5]) # เลือกตั้งแต่ตัวอักษรแรกของ string จนถึงตัวอักษรที่ 5 คือ "Hello"
print(str[2:]) # เลือกตั้งแต่ตัวอักษรที่ 3 จนถึงตัวสุดท้ายของ string คือ "llo, World!"
print(str[-5:-2]) # เลือกตัวอักษรตั้งแต่ 5 ตัวหลังสุดจนถึง 3 ตัวหลังสุดของ string คือ "orl"
โดยในตัวอย่างข้างต้น หากเราสังเกตตัวเลขในวงเล็บเหลี่ยม [ ] จะเห็นได้ว่าเรากำหนด index ของตัวอักษรที่เราต้องการเลือก โดยเริ่มจาก 0 สำหรับตัวอักษรแรกของ string และ -1 สำหรับตัวอักษรสุดท้ายของ string และเราสามารถใช้ colon (:) เพื่อระบุช่วงของตัวอักษรที่เราต้องการเลือกได้
การ slice จะเริ่มต้นที่ตำแหน่งแรกของ string ที่มี index เท่ากับ 0 โดยตำแหน่งจะถูกกำหนดด้วยเลข index ซึ่งถูกใส่ไว้ภายในวงเล็บ [ ] โดยการ slice ข้อมูลนั้นจะเริ่มต้นตำแหน่งเริ่มต้นและสิ้นสุดที่ตำแหน่งก่อนตำแหน่งที่ระบุในวงเล็บ [ ] โดยจะใช้เครื่องหมาย “:” แบ่งส่วนระหว่างตำแหน่งเริ่มต้นและสิ้นสุด โดยค่าตำแหน่งสุดท้ายนั้นสามารถถูกละเว้นได้ โดยการละเว้นตำแหน่งสามารถทำได้โดยใช้เครื่องหมาย “:” โดยไม่ต้องระบุตำแหน่งสุดท้าย
นอกจากนี้ Python ยังสามารถใช้ค่าติดลบ (-) ในการ slice ข้อมูลจากตำแหน่งท้ายสุดของ string โดยการ slice นี้จะได้ข้อมูลที่มาก่อนตัวเลขที่ระบุเป็นจำนวนติดลบ เช่น -1 หมายถึงตำแหน่งสุดท้ายของ string ดังนี้
my_string = "Hello, World!"
การ slice โดยใช้ค่าติดลบ [-6:] จะเป็นการเลือกตั้งแต่ตำแหน่งที่ -6 จากตำแหน่งสุดท้ายของ string (นับจากขวามาซ้าย) ไปจนถึงตำแหน่งสุดท้ายของ string ซึ่งจะได้ผลลัพธ์เป็น string “World!” ดังนี้
my_string[-6:] # Output: 'World!'
ใช้ค่าติดลบ (-) ในการ slice ข้อมูลจากตำแหน่งท้ายสุดของ string ได้ โดยจะนับจากตำแหน่งสุดท้ายของ string ในลักษณะที่ตำแหน่งสุดท้ายจะมีค่าเป็น -1 และต่อไปจะลดลงไปเรื่อยๆ ตามลำดับ ดังนั้นเมื่อใช้ค่าติดลบในการ slice โดยใส่ค่าจำนวนเต็ม x ในลักษณะ [-x:] จะหมายถึงเลือกตั้งแต่ตำแหน่งสุดท้ายของ string ถึงตำแหน่งที่ x ของ string (ไม่รวมตำแหน่ง x)