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

จะค้นหาการเกิดขึ้นของสตริงย่อยที่ n ในสตริงใน Python ได้อย่างไร


คุณสามารถค้นหาการเกิดขึ้นที่ n ของสตริงย่อยในสตริงโดยแยกที่สตริงย่อยด้วยการแยก n+1 สูงสุด หากรายการผลลัพธ์มีขนาดใหญ่กว่า n+1 แสดงว่าสตริงย่อยเกิดขึ้นมากกว่า n ครั้ง ดัชนีสามารถพบได้โดยสูตรง่ายๆ ความยาวของสตริงเดิม - ความยาวของส่วนที่แยกล่าสุด - ความยาวของสตริงย่อย

ตัวอย่าง

def findnth(string, substring, n):
    parts = string.split(substring, n + 1)
    if len(parts) <= n + 1:
        return -1
    return len(string) - len(parts[-1]) - len(substring)
findnth('foobarfobar akfjfoobar afskjdf foobar', 'foobar', 2)

ผลลัพธ์

สิ่งนี้จะให้ผลลัพธ์:

31

n ในส่วนนี้เริ่มจาก 0 การเปลี่ยนแปลงนั้นค่อนข้างเล็กน้อย