Python find() วิธีการหาตำแหน่งดัชนีที่อินสแตนซ์แรกของสตริงเกิดขึ้นในสตริงอื่น find() ส่งคืนค่า -1 หากไม่พบค่า มิฉะนั้น จะส่งกลับตำแหน่งดัชนีเริ่มต้นของค่าที่คุณกำลังค้นหา
การค้นหาสตริงย่อยในสตริงเป็นการดำเนินการทั่วไปใน Python ตัวอย่างเช่น สมมติว่าคุณมีสตริงที่มีรายชื่อหนังสือที่คุณชื่นชอบ คุณอาจต้องการค้นหาหนังสือบางเล่มในรายการนั้น และคืนตำแหน่งที่หนังสือนั้นปรากฏในรายการ
นั่นคือที่ที่สตริง Python find() เมธอดเข้ามา find() วิธีช่วยให้คุณค้นหาสตริงย่อยใน Python เมธอดนี้ส่งคืนตำแหน่งดัชนีของสตริงย่อยที่เกิดขึ้นครั้งแรกในสตริง
บทช่วยสอนนี้จะกล่าวถึงตัวอย่าง พื้นฐานของการสร้างดัชนีสตริงใน Python จากนั้นเราจะใช้ Python find() วิธีค้นหาสตริงย่อยภายในสตริงที่ใหญ่กว่า
การจัดทำดัชนี Python:ทบทวน
สตริง Python เป็นลำดับที่มีอักขระแต่ละตัวขึ้นไป สตริงสามารถประกอบด้วยตัวอักษร ช่องว่าง สัญลักษณ์ หรือตัวเลข
พิจารณาสตริงต่อไปนี้:
company = "Career Karma"
สตริงนี้ประกอบด้วยอักขระ 12 ตัว ซึ่งแต่ละตัวมีตำแหน่งของตัวเองในสตริง นี่คือรายละเอียดดัชนีสำหรับสตริงนี้:
C | ก | ร | จ | จ | ร | | เค | ก | ร | ม | ก |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
วิธี Python find()
Python find() วิธีค้นหาในครั้งแรกที่สตริงเฉพาะปรากฏในสตริงอื่น หากไม่พบค่า เมธอด find() จะคืนค่า -1 find() คล้ายกับ Python index() method มาก แต่ index() จะเพิ่มข้อยกเว้นหากไม่พบค่า
81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้
ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก
ไวยากรณ์สำหรับ find() วิธีการมีดังนี้:
string_name.find(string_to_find, start, end)
fin() method ยอมรับสามพารามิเตอร์:
- string_to_find :สตริงย่อยที่มีค่าดัชนีเริ่มต้นที่คุณต้องการค้นหาในสตริง (จำเป็น)
- เริ่มต้น :ตำแหน่งดัชนีที่ควรเริ่มต้นการค้นหา ค่าเริ่มต้นสำหรับพารามิเตอร์นี้คือ 0 (ไม่บังคับ)
- จบ :ตำแหน่งดัชนีที่การค้นหาควรสิ้นสุด (ไม่บังคับ)
fin() วิธีส่งคืนดัชนีต่ำสุดที่การเกิดขึ้นครั้งแรกของสตริงเริ่มต้น หากไม่พบสตริงย่อยที่คุณกำลังค้นหาภายในสตริง ค่า -1 จะถูกส่งคืน
คุณสามารถใช้ Python if คำสั่งเพื่อประเมินว่า -1 ถูกส่งกลับหรือไม่ วิธีนี้จะช่วยให้คุณจัดการกับปัญหาต่างๆ ที่เกิดขึ้นได้หากไม่พบค่าที่คุณกำลังค้นหา
ตอนนี้เรารู้ไวยากรณ์ของ find() . แล้ว มาดูตัวอย่างที่แสดงวิธีการนี้ที่กำลังใช้งาน
Python ค้นหาตัวอย่าง
Python find() ตัวอย่าง:ค้นหาสตริง
สมมติว่าเรามีสตริงที่มีรายการรสชาติไอศกรีมที่ขายดีที่สุดที่ร้านไอศกรีมในท้องถิ่น
สตริงนี้ปรากฏดังนี้:
flavors = "Vanilla, Buttered Pecan, Cookies and Cream, Chocolate, Choc Chip, Strawberry"
ข้อมูลของเราจัดรูปแบบเป็นสตริง (แสดงด้วยเครื่องหมายคำพูด)
สมมติว่าเราต้องการค้นหาตำแหน่งที่รายการ "คุกกี้และครีม" ปรากฏในสตริงของเรา เราสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับความนิยมของรสชาติคุกกี้แอนด์ครีม ในการทำเช่นนั้น เราสามารถใช้ find() ฟังก์ชั่นในตัว นี่คือรหัสที่เราจะใช้เพื่อค้นหารายการนี้ในสตริงของเรา:
flavors = "Vanilla, Buttered Pecan, Cookies and Cream, Chocolate, Choc Chip, Strawberry" cookies_and_cream = flavors.find("Cookies and Cream") print(cookies_and_cream)
รหัสของเราส่งคืน:25
ขั้นแรก เราประกาศตัวแปร Python ที่เรียกว่า “flavors” ตัวแปรนี้จัดเก็บรายการรสชาติยอดนิยมที่ขายในร้านไอศกรีมในท้องถิ่น
ต่อไป เราใช้ find() วิธีค้นหาคำว่า “Cookies and Cream” ในรายการของเรา และกำหนดค่าที่ส่งคืนโดย find() วิธีการตัวแปร “cookies_and_cream”
รหัสของเราคืนค่า 25 ซึ่งหมายความว่า “คุกกี้และครีม” เริ่มต้นที่ตำแหน่งดัชนี 25 ในรายการของเรา
Python find() ตัวอย่าง:เริ่มการค้นหาที่ดัชนีเฉพาะ
ตอนนี้ สมมติว่าเราต้องการตรวจสอบว่า “Choc Chip” ปรากฏต่อจาก “Cookies and Cream” ในรายการของเราหรือไม่ เรารู้ว่า “คุกกี้แอนด์ครีม” เริ่มต้นที่ตำแหน่งดัชนี 25 ดังนั้นเราจึงต้องการค้นหา “Choc Chip” หลังจากตำแหน่งดัชนีนั้น
เราสามารถทำได้โดยใช้รหัสต่อไปนี้:
flavors = "Vanilla, Buttered Pecan, Cookies and Cream, Chocolate, Choc Chip, Strawberry" choc_chip = flavors.find("Choc Chip", 25) print(choc_chip)
รหัสของเราส่งคืน:55 เราใช้ find() เพื่อค้นหา “Choc Chip” ในสตริง “flavors” ของเรา เราระบุพารามิเตอร์หนึ่งตัวคือ 25 ซึ่งระบุว่าการค้นหาของเราควรเริ่มต้นที่ใดในสตริง
เนื่องจาก “Choc Chip” ปรากฏขึ้นหลัง “Cookies and Cream” ค่าบวกจึงถูกส่งกลับ ค่านี้คือตำแหน่งดัชนีที่ “Choc Chip” ปรากฏในรายการ
Python find() ตัวอย่าง:ค้นหาระหว่างช่วงเฉพาะ
ตอนนี้ สมมติว่าเราต้องการค้นหาว่า “Buttered Pecan” ปรากฏก่อน “Cookies and Cream” หรือไม่ เรารู้ว่า “Cookies and Cream” เริ่มต้นที่ตำแหน่งดัชนี 25 ดังนั้นเราจึงไม่ต้องการค้นหา “Buttered Pecan” หลังจากจุดนั้น เพื่อทำการค้นหานี้ เราสามารถใช้รหัสต่อไปนี้:
flavors = "Vanilla, Buttered Pecan, Cookies and Cream, Chocolate, Choc Chip, Strawberry" buttered_pecan = flavors.find("Buttered Pecan", 0, 25) print(buttered_pecan)
รหัสของเราส่งคืน:9. ในตัวอย่างนี้ เราใช้ find() เพื่อค้นหา “บัตเตอร์พีแคน” ในสตริงของเรา เราระบุ 0 เป็นตำแหน่งที่การค้นหาของเราควรเริ่มต้น และ 25 เป็นตำแหน่งที่การค้นหาของเราควรสิ้นสุด
เนื่องจาก “Buttered Pecan” ปรากฏก่อน “Cookies and Cream” ค่าบวกจึงถูกส่งกลับพร้อมกับตำแหน่งดัชนีของ “Buttered Pecan” ในสตริงของเรา
Python find() กับ Python index()
ทั้ง Python find() และ Python index() วิธีการส่งกลับตำแหน่งดัชนีของค่าในสตริง
ไม่เหมือนกับ index() find() จะไม่ส่งคืนข้อยกเว้นหากไม่พบค่า แต่ find() วิธีการส่งกลับ -1 ซึ่งหมายความว่าคุณสามารถประมวลผลสิ่งที่เกิดขึ้นได้หากไม่พบค่าโดยไม่จัดการข้อผิดพลาด
บทสรุป
งูหลาม find() วิธีช่วยให้คุณค้นหาสตริงย่อยภายในสตริง คล้ายกับเมธอด index() แต่เมธอด index() ทำให้เกิดข้อยกเว้นหากไม่พบค่า find() ส่งคืนค่า -1 หากไม่พบค่า
บทช่วยสอนนี้กล่าวถึงโดยอ้างอิงจากตัวอย่าง พื้นฐานของการจัดทำดัชนีสตริง และวิธีใช้ Python find() กระบวนการ. ตอนนี้คุณมีความรู้ที่จำเป็นในการเริ่มค้นหาสตริงย่อยในสตริงโดยใช้ find() เหมือนผู้เชี่ยวชาญ!
สำหรับคำแนะนำเกี่ยวกับแหล่งข้อมูลและหลักสูตรการเรียนรู้ Python ชั้นนำ โปรดดูคู่มือ How to Learn Python