
เขียนโปรแกรมภาษา Python ตอนที่ 15 การตัดข้อมูชนิด String ด้วย slice syntax
ในภาษา Python เมื่อเราต้องการตัดเอาข้อความเฉพาะบางส่วนจากตัวแปรที่เก็บข้อมูลประเภท String เราสามารถทำได้โดยการใช้ slice syntax ซึ่งมีรูปแบบการใช้งานดังนี้
string[start:end]
string
คือตัวแปรประเภทสตริงstart
คือ ตัวเลขระบุตำแหน่งตัวอักษรตัวแรกที่ต้องการ โดยให้ระบุเป็นตัวเลขจำนวนเต็มend
คือ ตัวเลขระบุตำแหน่งตัวอักษรตัวสุดท้ายที่ต้องการ โดยให้ระบุเป็นตัวเลขจำนวนเต็ม (ตำแหน่งของอักขระที่ได้จะเป็นตำแหน่งที่end -1
)
หมายเหตุ : อินเด็กซ์ของอักขระในสตริง เริ่มต้นที่ตำแหน่ง 0
str = "Python Is Fantastic" print(str[0:6]) # Python

จากโค้ดตัวอย่าง หมายถึง ให้ตัดเอาอักขระลำดับที่ 0 ถึงลำดับที่ 6 ลบ 1 คือ 0 1 2 3 4 5 เท่ากับคำว่า Python
ตัดสตริงเริ่มจากตำแหน่งแรกสุด
เราสามารถเว้นการระบุตำแหน่ง start
เพื่อให้ตัดสตริงเริ่มจากอินเด็กซ์ลำดับแรก ก็ได้เช่นกัน
str = "Python Is Fantastic" print(str[:6]) # Python
จากตัวอย่าง ไม่ได้ระบุตำแหน่ง start
ไพธอนจะรู้เองว่า ต้องเริ่มตัดสตริงจากตำแหน่งแรก
ตัดสตริงจนถึงลำดับสุดท้าย
ถ้าต้องการตัดสตริงจนถึงลำดับสุดท้าย ก็สามารถเว้นตำแหน่ง end
ไว้ เพื่อให้ Python ตัดสตริงจนถึงตำแหน่งสุดท้ายก็ได้เช่นกัน
str = "Python Is Fantastic" print(str[10:]) # Fantastic
จากตัวอย่าง ระบุเฉพาะตำแหน่ start
ไม่ได้ระบุตำแหน่ง end
ดังนั้น Python จะตัดสตริงเริ่มจากตำแหน่งที่ระบุจนถึงลำดับสุดท้าย
ถ้าไม่ระบุทั้งตำแหน่ง start
และตำแหน่ง end
ก็จะได้สตริงต้นฉบับมาทั้งหมด
str = "Python Is Fantastic" print(str[:]) # Python Is Fantastic
ตัดสตริงมาจากข้างหลัง
ตัวอย่างด้านบนทั้งหมด เป็นการตัดสตริงโดยเริ่มนับจากตำแหน่งแรก (ซ้ายไปขวา) แต่ถ้าเราต้องการตัดสตริงโดยเริ่มนับมาจากด้านหลัง (ขวามาซ้าย) ก็สามารถทำได้เช่นกัน โดยการระบุอินเด็กซ์เป็นตัวเลขติดลบ ดังนี้
str = "Python Is Fantastic" print(str[-19:-13]) # Python
จากตัวอย่าง ต้องการตัดเอาคำว่า Python โดยให้นับจำนวนอินเด็กซ็มาจากด้านหลัง จึงระบุ start เป็น -19 เพราะเมื่อนับมาจากด้านหลัง ตัว P อยู่ลำดับที่ 19 และระบุตำแหน่ง end เป็น -13 เพราะเมื่อนับมาจากด้านหลัง ตัว n (ของคำว่า Python) อยู่ลำดับที่ 14