การตัดหรือหั่นข้อมูล (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)