Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Python Substring: คู่มือทีละขั้นตอนสำหรับการตัดสตริง

Python substring คือส่วนของข้อความที่นำมาจากสตริง คุณสามารถแยก substring ใน Python ได้โดยใช้การตัด片 (slicing) ด้วยรูปแบบ: YourString[StartingIndex:StoppingIndex:CharactersToSkip]


บ่อยครั้งที่โปรแกรมเมอร์มีข้อมูลที่ต้องการแบ่งออกเป็นส่วนต่างๆ ตัวอย่างเช่น นักพัฒนาอาจมีชื่อเต็มของผู้ใช้ และต้องการได้แค่ชื่อจริง ในกรณีนี้ นักพัฒนาจะต้องการแบ่งชื่อออกเป็นสองส่วน: ชื่อจริงและนามสกุล

ในภาษาโปรแกรมมิ่ง Python ทำอย่างไร? นี่คือที่มาของการ slicing สตริง โดยใช้เทคนิคที่เรียกว่า slicing เราสามารถรับส่วนเฉพาะของสตริง ซึ่งจะกลายเป็น substring ในบทช่วยสอนนี้ เราจะแยกวิเคราะห์ว่าสตริงย่อยทำงานอย่างไรใน Python และว่าคุณสามารถใช้ slicing เพื่อสร้างของคุณเองได้อย่างไร

ดัชนีสตริง (String Indexes): บททบทวน

ก่อนที่เราจะไปต่อสู่การอภิปรายเกี่ยวกับการตัด片และไวยากรณ์การตัด片 เราต้องดูก่อนว่า Python จัดทำดัชนีสตริงอย่างไร

ใน Python สตริงคือลำดับของอักขระหนึ่งหรือมากกว่า ซึ่งอาจรวมถึงตัวเลข ช่องว่าง ตัวอักษร หรือสัญลักษณ์ คุณสามารถเข้าถึงส่วนต่างๆ ของสตริงได้ในลักษณะเดียวกับลำดับอื่นๆ เช่น รายการ (list)

แต่ละอักขระในสตริงมีค่าดัชนีของตัวเอง ซึ่งระบุตำแหน่งของอักขระในสตริง ตัวเลขเหล่านี้เริ่มต้นด้วยหมายเลขดัชนี 0 ตัวอย่างเช่น นี่คือวิธีที่สตริง Python Substrings จะถูกแทนที่:

Python Substring!
012345678910111213141516

อักขระแรกในสตริงของเรา (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 ของเรา