Computer >> Máy Tính >  >> Lập trình >> Python

Làm cách nào để tìm lần xuất hiện thứ n của chuỗi con trong một chuỗi bằng Python?

Bạn có thể tìm lần xuất hiện thứ n của một chuỗi con trong một chuỗi bằng cách tách ở chuỗi con có tối đa n + 1 lần tách. Nếu danh sách kết quả có kích thước lớn hơn n + 1, nghĩa là chuỗi con xuất hiện nhiều hơn n lần. Chỉ số của nó có thể được tìm thấy bằng một công thức đơn giản, độ dài của chuỗi ban đầu - độ dài của phần được tách cuối cùng - độ dài của chuỗi con.

Ví dụ

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)

Đầu ra

Điều này sẽ cho kết quả:

31

Số n trong này bắt đầu từ 0. Thay đổi điều đó là khá nhỏ.