หัดเขียน Python การอ้าง index และการ slice ใน element

python

หัดเขียน Python การอ้าง index และการ slice ใน element

ในการอ้าง index หรือ element ในภาษา python นั้นมีความผิดแตกต่างกับภาษาอื่นมากพอสมควร ใน python ไม่ว่าจะเป็น array , list, tuple ชนิดข้อมูลที่เป็นชุดเรียกต่อกันจะใช้การอ้างอิง index และการตัด Slicing แบบเดียวกันคือใช้ การอ้างอิงใน [] นั้นเองเรามาดูตัวอย่างโค้ดกันเลยดีกว่า

phonelist = ['iphonex', 'galaxy', 'vivo', 'nexus']
name = 'thaicoding'

#Indexing or 'Subscription' operation #
print('Item 0 is', phonelist[0])
print('Item 1 is', phonelist[1])
print('Item 3 is', phonelist[3])
print('Item -1 is', phonelist[-1])
print('Item -2 is', phonelist[-2])
print('Character 0 is ', name[0])
print('Character -10 is ', name[-10])

ผลลัพธ์การรันโปรแกรม

หัดเขียน Python การอ้าง index และการ Slicing ใน element

จากผลลัพธ์จะเห็นว่าการอ้างอิง index นั้นจะเริ่มจาก 0 เหมือนกับภาษาใน C Family ซึ่งค่าที่ได้ก็เป็นไปตามชนิดข้อมูลของตัวแปรนั้น อย่างตัวแปร phonelist จะเก็บข้อความหลายๆอันจึง return ค่าออกมาเป็นข้อความตาม index เลย ส่วนตัวแปร name นั้นจะเก็บเป็นข้อความอยู่แล้ว เหมือนอ้างอิง index ที่ 0 จึง return ค่าตัวอักษร t ออกมา แต่ใน python นั้นจะมีการอ้างอิง index ที่เป็น – ซึ่งการทำงานของมันนั้นจะนับถอยหลัง โดยที่ -1 จะเป็นตัวสุดท้ายของชุดข้อมูล

หัดเขียน Python การอ้าง index และการ Slicing ใน element

จากรูปการอ้างอิง index และผลลัพธ์การรันโปรแกรมจะเห็นว่า index  0 กับ index -10 ของตัวแปร name จะ return ค่าตัว t ออกมาเหมือนกัน นั้นคือ index ติดลบนั้นจะเป็นการนับถอยหลังโดยเริ่มจาก -1 ตัวสุดท้ายของข้อมูลจนถึงตัวแรกสุดของข้อมูล

ต่อมาจะเป็นตัวอย่างการ slice list หรือชุดข้อมูล มาดูตัวอย่างโค้ดกันเลยครับ

phonelist = ['iphonex', 'galaxy', 'vivo', 'nexus']
name = 'thaicoding'

#Slicing on a list
print('Item 1 to 3 is ', phonelist[1:3])
print('Item 2 to end is ', phonelist[2:])
print('Item 1 to -1 is ', phonelist[1:-1])
print('Item start to end is', phonelist[:])

ผลลัพธ์การรันโปรแกรม

หัดเขียน Python การอ้าง index และการ slice ใน element

การตัดช่วงของ index นั้นจะเป็นการกำหนดจุดเริ่มต้น แล้วคั่นด้วย : แล้วจุดหยุด ซึ่งจุดหยุดนี้จะเป็น index ที่หยุดแล้วไม่เอาค่าตรงตำแหน่งมากซึ่งจะแปลกจากภาษาอื่นเล็กน้อย จากตัวอย่างจะเห็นว่า ตัดช่วง [1:3] ของตัวแปร phonelist จะได้ตำแหน่งที่ 1 กับ 2 มา เพราะเริ่มที่ 1 และหยุด ที่ 3 โดยตรงตำแหน่งที่ 3 คือข้อความว่า nexus จะไม่เอามาด้วยแต่ละจบแค่ vivo เท่านั้น ซึ่งนอกจากนี้ยังสามารถใช้ค่า index ที่เป็นลบเพื่ออ้างอิงจากด้านหลังมาด้านหน้าได้อีกด้วย เช่นจากตัวอย่าง phonelist[1:-1] เริ่มที่ตำแหน่ง 1 แล้วหยุดที่ -1 คือตัวสุดท้ายค่าที่ได้ก็จะเป็น galaxy, vivo เพราะหยุดที่ตัวสุดท้ายจึงได้แค่ค่ารองสุดท้ายมาคือ vivo นั้นเอง

ต่อมาจะเป็นอีกตัวอย่างคือการ slice ตัวแปรชนิดที่เป็น string ซึ่งจะได้ string ที่ถูกตัดตามช่วงที่กำหนด มาดูโค้ดตัวอย่างกันครับ

phonelist = ['iphonex', 'galaxy', 'vivo', 'nexus']
name = 'thaicoding'

#Slicing on a string #
print('characters  1 to 3 is ', name[1:3])
print('characters 2 to end is', name[2:])
print('characters 1 to -1 is', name[1:-1])
print('characters start to end is ', name[:])

ผลลัพธ์การรันโปรแกรม

หัดเขียน Python การอ้าง index และการ slice ใน element

จากผลลัพธ์จะเห็นว่าหลักการคล้ายกับตัวอย่างก่อนหน้านี้เพียงแต่แค่เป็นการตัดคำเท่านั้น

โค้ดตัวอย่างทั้งหมด

phonelist = ['iphonex', 'galaxy', 'vivo', 'nexus']
name = 'thaicoding'

#Indexing or 'Subscription' operation #
print('Item 0 is', phonelist[0])
print('Item 1 is', phonelist[1])
print('Item 3 is', phonelist[3])
print('Item -1 is', phonelist[-1])
print('Item -2 is', phonelist[-2])
print('Character 0 is ', name[0])
print('Character -10 is ', name[-10])

#Slicing on a list
print('Item 1 to 3 is ', phonelist[1:3])
print('Item 2 to end is ', phonelist[2:])
print('Item 1 to -1 is ', phonelist[1:-1])
print('Item start to end is', phonelist[:])

#Slicing on a string #
print('characters  1 to 3 is ', name[1:3])
print('characters 2 to end is', name[2:])
print('characters 1 to -1 is', name[1:-1])
print('characters start to end is ', name[:])

 

Leave a Reply

Your email address will not be published. Required fields are marked *