Python สตริง find() วิธีการพร้อมตัวอย่าง
ความหมายของ Python สตริงค้นหา ()?
Python ค้นหาสตริง () เป็นฟังก์ชันที่มีอยู่ใน Python ไลบรารีเพื่อค้นหาดัชนีของการเกิดขึ้นครั้งแรกของซับสตริงจากสตริงที่กำหนด ฟังก์ชัน find() ของสตริงจะส่งคืน -1 แทนที่จะโยนข้อยกเว้น ถ้าซับสตริงที่ระบุไม่มีอยู่ในสตริงที่กำหนด
ไวยากรณ์ของ Python ค้นหาสตริง ()
ไวยากรณ์พื้นฐานของ Python find() ฟังก์ชันเป็นดังนี้:
string.find(substring,start,end)
พารามิเตอร์สำหรับเมธอด find()
นี่คือพารามิเตอร์สามตัวของฟังก์ชัน String find() ใน Python:
- สตริงย่อย: สตริงย่อยที่คุณต้องการค้นหาในสตริงที่กำหนด
- เริ่มต้น: (เป็นทางเลือก) ค่าเริ่มต้นจากตำแหน่งที่จะเริ่มต้นการค้นหาสตริงย่อย โดยค่าเริ่มต้นจะเป็น 0
- ปลาย: (เป็นทางเลือก) ค่าสิ้นสุดที่การค้นหาสตริงย่อยจะสิ้นสุด ตามค่าเริ่มต้น ค่าคือความยาวของสตริง
ตัวอย่างของเมธอด find() ที่มีค่าเริ่มต้น
พารามิเตอร์ที่ส่งผ่านไปยัง Python find() เมธอดเป็นสตริงย่อย เช่น สตริงที่คุณต้องการค้นหา เริ่มต้น และสิ้นสุด ค่าเริ่มต้นคือ 0 โดยค่าเริ่มต้น และค่าสิ้นสุดคือความยาวของสตริง
ในตัวอย่างนี้ เราจะใช้เมธอด find() ใน Python ด้วยค่าเริ่มต้น
เมธอด find() จะค้นหาสตริงย่อยและระบุตำแหน่งของสตริงย่อยที่เกิดขึ้นครั้งแรก ตอนนี้ หากสตริงย่อยปรากฏหลายครั้งในสตริงที่กำหนด สตริงย่อยก็จะส่งคืนดัชนีหรือตำแหน่งของสตริงแรกให้คุณ
ตัวอย่าง:
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!" print("The position of Tutorials is at:", mystring.find("Tutorials"))
Output:
The position of Tutorials is at: 12
ตัวอย่างของ find() โดยใช้อาร์กิวเมนต์เริ่มต้น
คุณสามารถค้นหาสตริงย่อยในสตริงที่กำหนดและระบุตำแหน่งเริ่มต้นจากตำแหน่งที่การค้นหาจะเริ่มต้น พารามิเตอร์เริ่มต้นสามารถใช้เหมือนกันได้
ตัวอย่างจะระบุตำแหน่งเริ่มต้นเป็น 15 และ find() ใน Python method จะเริ่มค้นหาจากตำแหน่งที่ 15 โดยตำแหน่งสิ้นสุดจะเป็นความยาวของสายอักขระ และจะค้นหาจนถึงจุดสิ้นสุดของสายตั้งแต่ 15 ตำแหน่งเป็นต้นไป
ตัวอย่าง:
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!" print("The position of Tutorials is at:", mystring.find("Tutorials", 20))
Output:
The position of Tutorials is at 48
ตัวอย่างของ find() โดยใช้อาร์กิวเมนต์เริ่มต้นและสิ้นสุด
โดยใช้พารามิเตอร์เริ่มต้นและสิ้นสุด เราจะพยายามจำกัดการค้นหาแทนที่จะค้นหาสตริงทั้งหมด
ตัวอย่าง:
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!" print("The position of Tutorials is at:", mystring.find("Tutorials", 5, 30))
Output:
The position of Tutorials is at 12
ตัวอย่างวิธีการ find() เพื่อค้นหาตำแหน่งของสตริงย่อยที่กำหนดในสตริง
เราทราบว่า find() ช่วยให้เราค้นหาดัชนีของสตริงย่อยที่เกิดขึ้นครั้งแรกได้ โดยจะส่งคืน -1 ถ้าสตริงย่อยนั้นไม่มีอยู่ ตัวอย่างด้านล่างจะแสดงดัชนีเมื่อสตริงมีอยู่ และส่งคืน -1 เมื่อเราไม่พบสตริงย่อยที่เรากำลังค้นหา
ตัวอย่าง:
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!" print("The position of Best site is at:", mystring.find("Best site", 5, 40)) print("The position of Guru99 is at:", mystring.find("Guru99", 20))
Output:
The position of Best site is at: 27 The position of Guru99 is at: -1
Python สตริง rfind()
เค้ก Python ฟังก์ชั่น rfind() คล้ายกับฟังก์ชัน find() โดยมีข้อแตกต่างเพียงอย่างเดียวคือ rfind() ให้ดัชนีสูงสุดสำหรับสตริงย่อยที่กำหนด และ find() ให้ค่าต่ำสุดคือดัชนีแรกสุด ทั้ง rfind() และ find() จะส่งกลับ -1 หากไม่มีสตริงย่อย
ในตัวอย่างด้านล่าง เรามีสตริง “Meet Guru99 Tutorials Site เว็บไซต์ที่ดีที่สุดสำหรับ Python สอน- และจะพยายามค้นหาตำแหน่งของสตริงย่อย Tutorials โดยใช้ find() และ rfind() การเกิดขึ้นของบทช่วยสอนในสตริงเป็นสองครั้ง
นี่คือตัวอย่างที่ใช้ทั้ง find() และ rfind()
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!" print("The position of Tutorials using find() : ", mystring.find("Tutorials")) print("The position of Tutorials using rfind() : ", mystring.rfind("Tutorials"))
Output:
The position of Tutorials using find() : 12 The position of Tutorials using rfind() : 48
ผลลัพธ์แสดงให้เห็นว่า find() ให้ดัชนีของสตริงย่อย Tutorials แรกสุดที่ได้รับ และ rfind() ให้ดัชนีสุดท้ายของสตริงย่อย Tutorials
Python ดัชนีสตริง ()
เค้ก Python string index() เป็นฟังก์ชันที่จะให้ตำแหน่งของสตริงย่อยที่กำหนดเหมือนกับ find() ข้อแตกต่างระหว่างทั้งสองคือดัชนี () จะส่งข้อยกเว้นหากไม่มีสตริงย่อยในสตริงและ find() จะส่งกลับ -1
นี่คือตัวอย่างการทำงานที่แสดงพฤติกรรมของดัชนี() และ find()
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!" print("The position of Tutorials using find() : ", mystring.find("Tutorials")) print("The position of Tutorials using index() : ", mystring.index("Tutorials"))
Output:
The position of Tutorials using find() : 12 The position of Tutorials using index() : 12
เราได้รับตำแหน่งเดียวกันสำหรับทั้ง find() และ index() เรามาดูตัวอย่างเมื่อสตริงย่อยที่ระบุไม่มีอยู่ในสตริง
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!" print("The position of Tutorials using find() : ", mystring.find("test")) print("The position of Tutorials using index() : ", mystring.index("test"))
Output:
The position of Tutorials using find() : -1 Traceback (most recent call last): File "task1.py", line 3, in <module> print("The position of Tutorials using index() : ", mystring.index("test")) ValueError: substring not found
ในตัวอย่างข้างต้น เรากำลังพยายามค้นหาตำแหน่งของสตริงย่อย “test” สตริงย่อยไม่มีอยู่ในสตริงที่กำหนด และด้วยเหตุนี้เมื่อใช้ find() เราจะได้ตำแหน่งเป็น -1 แต่สำหรับ index() มันจะแสดงข้อผิดพลาดดังที่แสดงไว้ด้านบน
เพื่อค้นหาจำนวนรวมของสตริงย่อย
ในการค้นหาจำนวนครั้งทั้งหมดที่สตริงย่อยเกิดขึ้นในสตริงที่กำหนด เราจะใช้ฟังก์ชัน find() Python- จะวนซ้ำสตริงโดยใช้ for-loop ตั้งแต่ 0 จนถึงจุดสิ้นสุดของสตริง จะใช้พารามิเตอร์ startIndex สำหรับ find()
ตัวแปร startIndex และการนับจะเริ่มต้นเป็น 0 ภายใน for –loop จะตรวจสอบว่ามีสตริงย่อยอยู่ภายในสตริงที่กำหนดโดยใช้ find() และ startIndex เป็น 0 หรือไม่
ค่าที่ส่งคืนจาก find() หากไม่ใช่ -1 จะอัปเดต startIndex เป็นดัชนีที่พบสตริงและเพิ่มค่าการนับด้วย
นี่คือตัวอย่างการทำงาน:
my_string = "test string test, test string testing, test string test string" startIndex = 0 count = 0 for i in range(len(my_string)): k = my_string.find('test', startIndex) if(k != -1): startIndex = k+1 count += 1 k = 0 print("The total count of substring test is: ", count )
Output:
The total count of substring test is: 6
สรุป
- เค้ก Python string find() วิธีการช่วยในการค้นหาดัชนีของการเกิดขึ้นครั้งแรกของสตริงย่อยในสตริงที่กำหนด มันจะคืนค่า -1 หากไม่มีสตริงย่อย
- พารามิเตอร์ที่ส่งผ่านไปยัง Python find substring method คือสตริงย่อย เช่น สตริงที่คุณต้องการค้นหา เริ่มต้น และสิ้นสุด ค่าเริ่มต้นคือ 0 โดยค่าเริ่มต้น และค่าสิ้นสุดคือความยาวของสตริง
- คุณสามารถค้นหาสตริงย่อยในสตริงที่กำหนดและระบุตำแหน่งเริ่มต้นจากตำแหน่งที่การค้นหาจะเริ่มต้น พารามิเตอร์เริ่มต้นสามารถใช้เหมือนกันได้
- โดยใช้พารามิเตอร์เริ่มต้นและสิ้นสุด เราจะพยายามจำกัดการค้นหาแทนที่จะค้นหาสตริงทั้งหมด
- เค้ก Python ฟังก์ชัน rfind() คล้ายกับฟังก์ชัน find() โดยมีข้อแตกต่างเพียงอย่างเดียวคือ rfind() ให้ดัชนีสูงสุดสำหรับสตริงย่อยที่กำหนด และ find() ให้ค่าต่ำสุดคือดัชนีแรกสุด ทั้ง rfind() และ find() จะส่งกลับ -1 หากไม่มีสตริงย่อย
- เค้ก Python string index() เป็นอีกหนึ่งฟังก์ชันที่จะให้ตำแหน่งของสตริงย่อยที่กำหนดเหมือนกับ find() ข้อแตกต่างระหว่างทั้งสองคือดัชนี () จะส่งข้อยกเว้นหากไม่มีสตริงย่อยในสตริงและ find() จะส่งกลับ -1
- เราสามารถใช้ find() เพื่อค้นหาจำนวนรวมของสตริงย่อยในสตริงที่กำหนด
» เรียนรู้เพิ่มเติมเกี่ยวกับ Python แยกสตริง ()