Python substring คือส่วนของข้อความที่นำมาจากสตริง คุณสามารถแยก substring ใน Python ได้โดยใช้การตัด片 (slicing) ด้วยรูปแบบ: YourString[StartingIndex:StoppingIndex:CharactersToSkip]
บ่อยครั้งที่โปรแกรมเมอร์มีข้อมูลที่ต้องการแบ่งออกเป็นส่วนต่างๆ ตัวอย่างเช่น นักพัฒนาอาจมีชื่อเต็มของผู้ใช้ และต้องการได้แค่ชื่อจริง ในกรณีนี้ นักพัฒนาจะต้องการแบ่งชื่อออกเป็นสองส่วน: ชื่อจริงและนามสกุล
ในภาษาโปรแกรมมิ่ง Python ทำอย่างไร? นี่คือที่มาของการ slicing สตริง โดยใช้เทคนิคที่เรียกว่า slicing เราสามารถรับส่วนเฉพาะของสตริง ซึ่งจะกลายเป็น substring ในบทช่วยสอนนี้ เราจะแยกวิเคราะห์ว่าสตริงย่อยทำงานอย่างไรใน Python และว่าคุณสามารถใช้ slicing เพื่อสร้างของคุณเองได้อย่างไร
ดัชนีสตริง (String Indexes): บททบทวน
ก่อนที่เราจะไปต่อสู่การอภิปรายเกี่ยวกับการตัด片และไวยากรณ์การตัด片 เราต้องดูก่อนว่า Python จัดทำดัชนีสตริงอย่างไร
ใน Python สตริงคือลำดับของอักขระหนึ่งหรือมากกว่า ซึ่งอาจรวมถึงตัวเลข ช่องว่าง ตัวอักษร หรือสัญลักษณ์ คุณสามารถเข้าถึงส่วนต่างๆ ของสตริงได้ในลักษณะเดียวกับลำดับอื่นๆ เช่น รายการ (list)
แต่ละอักขระในสตริงมีค่าดัชนีของตัวเอง ซึ่งระบุตำแหน่งของอักขระในสตริง ตัวเลขเหล่านี้เริ่มต้นด้วยหมายเลขดัชนี 0 ตัวอย่างเช่น นี่คือวิธีที่สตริง Python Substrings จะถูกแทนที่:
| P | y | t | h | o | n | S | u | b | s | t | r | i | n | g | ! | |
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
อักขระแรกในสตริงของเรา (P) มีค่าดัชนี 0 อักขระ ! มีค่าดัชนี 16
เนื่องจากแต่ละอักขระมีหมายเลขดัชนีของตัวเอง เราจึงสามารถอ่านและเปลี่ยนแปลงอักขระแต่ละตัวในสตริงของเราได้
Python String Substring
สมมติว่าเราต้องการรับอักขระสามตัวแรกจากสตริง - เราทำอย่างไร? หรือถ้าเราต้องการดึงอักขระสองตัวสุดท้ายในสตริง?
เราสามารถใช้เทคนิคที่เรียกว่า slicing เพื่อดึงข้อมูลเฉพาะจากสตริง นี่คือการที่เราระบุลำดับของอักขระจากสตริงที่แน่นอนที่เราต้องการดึง เราสามารถใช้ slices เพื่อรับข้อมูลใดๆ ที่เราต้องการจากสตริง ไวยากรณ์ที่เราใช้คือ:
string[start:end:step]
มีสามส่วนประกอบในการตัด片:
- start: ตำแหน่งดัชนีที่ slice ของเราควรเริ่มต้น ค่าเริ่มต้นคือ 0
- end: ตำแหน่งที่ slice จบลง อักขระที่ตำแหน่ง end จะไม่รวมอยู่ใน slice ค่าเริ่มต้น end คือความยาวของสตริง
- step: สั่งให้ slice ข้ามอักขระทุก N ตัว N เท่ากับ step ที่คุณระบุ step เท่ากับ 1 โดยค่าเริ่มต้น
Substring Python: ตัวอย่าง
ดึงอักขระสามตัวแรก
เราจะดึงอักขระสามตัวแรกจากสตริง โดยใช้ไวยากรณ์ slicing:
ourString = "Python Substring!" print(ourString[0:3])
เอาต์พุตของโค้ดของเราคือ:
Pyt
ละเว้นหมายเลขเริ่มต้น
เรายังสามารถละเว้นหมายเลขแรกเพื่อรับอักขระทั้งหมดจนถึงค่าที่กำหนดในข้อความ นี่สะดวกหากข้อความที่เราต้องการอยู่ที่ต้นทางของสตริง
เราสามารถใช้เทคนิคนี้เพื่อดึงอักขระสามตัวแรกจากสตริงโดยไม่ต้องระบุ 0 เป็นหมายเลขเริ่มต้น:
ourString = "Python Substring!" print(ourString[:3])
โค้ดของเราคืนค่าเอาต์พุตเดียวกับตัวอย่างก่อนหน้า เราไม่ได้ระบุค่าเริ่มต้น เนื่องจาก start เป็น 0 โดยค่าเริ่มต้น เราต้องการดึงอักขระจากต้นทางของสตริงของเรา ดังนั้นไวยากรณ์นี้จึงทำงานได้
ดึงอักขระสองตัวสุดท้าย
เราสามารถดึงอักขระห้าตัวสุดท้ายของสตริงได้โดยใช้ค่าดัชนีลบและหมายเลขเริ่มต้น:
value = "Python" print(value[-2:])
โค้ดของเราคืนค่า: on เราได้ระบุค่าเพียงค่าเดียว: -2 นี่คือหมายเลขเริ่มต้นของเรา -2 บอก slice ของเราว่าให้เริ่มดึงอักขระจากตำแหน่งดัชนีที่สองจากท้ายในสตริงของเรา
ตัวอย่างอื่นๆ
เราเตรียมตัวอย่างอื่นๆ ไว้เพื่อช่วยให้คุณเรียนรู้วิธีใช้เมธอด slicing
ดึงอักขระตัวสุดท้ายในสตริง
value = "Python" print(value[-1]) Output: n
เราได้ระบุค่าเริ่มต้นเพียงค่าเดียวในตัวอย่างนี้ ไม่มีค่าสิ้นสุด หมายความว่าสตริงของเราจะดึงเฉพาะอักขระตัวสุดท้าย
ดึงอักขระในช่วง 2 ถึง 3
value = "Python" print(value[2:3]) Output: t
ค่าเริ่มต้นของเราคือ 2 และค่าสิ้นสุดคือ 3 อักขระทั้งหมดในช่วง 2 และ 3 จะถูกคืนค่า นี่ไม่รวมอักขระ 3 เอง เนื่องจากค่าสิ้นสุดเป็นแบบ exclusive (ไม่รวม)
ข้ามอักขระทุกตัวที่สอง
value = "Python" print(value[::2]) Output: Pto
เราใช้ทวิภาคสองครั้งเพื่อบอก Python ว่าเราต้องการใช้พารามิเตอร์เริ่มต้นและสิ้นสุดเริ่มต้น เราระบุ 2 เป็น step ของเรา หมายความว่า slice ของเราจะดึงอักขระทุกตัวที่สองจากสตริงของเรา
สรุป
Substring คือส่วนหนึ่งของสตริงที่ใหญ่กว่า เพื่อดึง substring คุณสามารถใช้ไวยากรณ์การตัด片 (slicing syntax) การตัด片ช่วยให้คุณกำหนดช่วงของอักขระที่จะดึง คุณสามารถใช้พารามิเตอร์ที่สามแบบเลือกได้เพื่อข้ามอักขระเฉพาะในช่วง
เรียนรู้เพิ่มเติมเกี่ยวกับภาษา Python ในคู่มือเรียนรู้ Python ของเรา