Đưa ra một chuỗi và một chuỗi con trong Python. Làm cách nào để tìm chỉ mục của lần xuất hiện cuối cùng của chuỗi con trong Python?
Hãy xem xét một vài ví dụ để hiểu thấu đáo vấn đề
Example 1:string = 'fifi' substring = 'fi' result: 2
Example 2:string = 'hello' substring = 'l' result: 3
Example 3:string = 'finxter finxter finxter' substring = 'finxter' result: 16
Tiếp theo, hãy đi sâu vào phương pháp Pythonic đầu tiên và hầu hết
Phương pháp 1. rfind[]
Phương thức Python
string = 'fifi' substring = 'fi' print[string.rfind[substring]] # 29 trả về chỉ số cao nhất trong chuỗi nơi tìm thấy chuỗi con. Do đó, nó tìm thấy chỉ mục của lần xuất hiện cuối cùng của chuỗi con trong một chuỗi đã cho hoặc trả về
string = 'hello' substring = 'l' print[string.rfind[substring]] # 3 string = 'finxter finxter finxter' substring = 'finxter' print[string.rfind[substring]] # 160 nếu không tìm thấy
Đây là một ví dụ
string = 'fifi' substring = 'fi' print[string.rfind[substring]] # 2
Để dễ hiểu, chúng ta hãy đi sâu vào hai ví dụ khác được giới thiệu trong phần xây dựng bài toán
string = 'hello' substring = 'l' print[string.rfind[substring]] # 3 string = 'finxter finxter finxter' substring = 'finxter' print[string.rfind[substring]] # 16
Bạn có thể tìm thấy một số thông tin cơ bản về
string = 'hello' substring = 'l' print[string.rfind[substring]] # 3 string = 'finxter finxter finxter' substring = 'finxter' print[string.rfind[substring]] # 161 và nhiều phương thức chuỗi khác trong video sau—chinh phục các phương thức chuỗi một lần và mãi mãi. 🙂
Phương thức chuỗi Python [Hướng dẫn cơ bản]
Xem video này trên YouTube
Phương pháp 2. chuỗi. rindex[]
Phương thức
string = 'hello' substring = 'l' print[string.rfind[substring]] # 3 string = 'finxter finxter finxter' substring = 'finxter' print[string.rfind[substring]] # 162 của Python trả về chỉ số cao nhất trong chuỗi nơi tìm thấy chuỗi con. Do đó, nó tìm thấy chỉ mục của lần xuất hiện cuối cùng của chuỗi con trong một chuỗi đã cho hoặc tăng 10 nếu không tìm thấy
Hãy có một ví dụ tương tự
string = 'fifi' substring = 'fi' print[string.rindex[substring]] # 2 string = 'hello' substring = 'l' print[string.rindex[substring]] # 3 string = 'finxter finxter finxter' substring = 'finxter' print[string.rindex[substring]] # 16
Sự khác biệt giữa
string = 'hello' substring = 'l' print[string.rfind[substring]] # 3 string = 'finxter finxter finxter' substring = 'finxter' print[string.rfind[substring]] # 161 và
string = 'fifi' substring = 'fi' print[string.rfind[substring]] # 22 là trong khi cả hai đều trả về chỉ số của lần xuất hiện cuối cùng của chuỗi con, thì cái trước trả về
string = 'hello' substring = 'l' print[string.rfind[substring]] # 3 string = 'finxter finxter finxter' substring = 'finxter' print[string.rfind[substring]] # 160 và cái sau trả về
string = 'fifi' substring = 'fi' print[string.rfind[substring]] # 20 nếu chuỗi con không tồn tại trong chuỗi
Phương pháp 3. Tìm kiếm Regex Tìm kiếm tiêu cực
Để giải trí, đây là một biểu thức chính quy tìm chỉ mục của lần xuất hiện cuối cùng của một chuỗi con trong một chuỗi đã cho
re.search[substring + '[?!.*' + substring + ']', string].start[]
Trước khi tôi giải thích cho bạn, hãy xem liệu nó có thực sự làm những gì nó phải làm hay không. 🙂
________số 8Được rồi, nó hoạt động - nhưng tại sao?
Bạn cần hiểu một vài khái niệm biểu thức chính quy cho điều này
- Phương thức
string = 'fifi' substring = 'fi' print[string.rfind[substring]] # 2
5 tìm sự xuất hiện đầu tiên củastring = 'fifi' substring = 'fi' print[string.rfind[substring]] # 2
6 trongstring = 'fifi' substring = 'fi' print[string.rfind[substring]] # 2
7 đã cho - Chúng tôi sử dụng mẫu
string = 'fifi' substring = 'fi' print[string.rfind[substring]] # 2
8 để tìm lần xuất hiện đầu tiên của chuỗi con mà không có lần xuất hiện nào khác củastring = 'fifi' substring = 'fi' print[string.rfind[substring]] # 2
9 theo sau trong chuỗi. Đây là lần xuất hiện cuối cùng củastring = 'fifi' substring = 'fi' print[string.rfind[substring]] # 2
9 trong chuỗi - Biểu thức
string = 'hello' substring = 'l' print[string.rfind[substring]] # 3 string = 'finxter finxter finxter' substring = 'finxter' print[string.rfind[substring]] # 16
1 được gọi là nhìn trước phủ định và nó đảm bảo rằng mẫu bên trong nó không tuân theo ngay sau đó [khớp không/khớp phủ định] - Giá trị trả về của
string = 'hello' substring = 'l' print[string.rfind[substring]] # 3 string = 'finxter finxter finxter' substring = 'finxter' print[string.rfind[substring]] # 16
2 là một đối tượng đối sánh mà chúng ta có thể gọi phương thứcstring = 'hello' substring = 'l' print[string.rfind[substring]] # 3 string = 'finxter finxter finxter' substring = 'finxter' print[string.rfind[substring]] # 16
3 để lấy chỉ mục của đối sánh trong bản gốcstring = 'fifi' substring = 'fi' print[string.rfind[substring]] # 2
7
Bạn có thể tìm hiểu thêm về phương pháp tìm kiếm regex trong video hướng dẫn này
Python Regex lại. search[] - Hướng dẫn đơn giản với ví dụ
Xem video này trên YouTube
👉 Hướng dẫn đề xuất. Cách tìm chỉ số cao nhất của chuỗi con trong Python
Chris
Trong khi làm việc với tư cách là nhà nghiên cứu về các hệ thống phân tán, Dr. Christian Mayer tìm thấy tình yêu của mình với việc dạy sinh viên khoa học máy tính
Để giúp sinh viên đạt được mức độ thành công Python cao hơn, anh ấy đã thành lập trang web giáo dục lập trình Finxter. com. Ông là tác giả của cuốn sách lập trình nổi tiếng Python One-Liners [NoStarch 2020], đồng tác giả của loạt sách tự xuất bản Coffee Break Python, người đam mê khoa học máy tính, cộng tác viên tự do và chủ sở hữu của một trong 10 blog Python lớn nhất thế giới
Niềm đam mê của anh ấy là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh ấy là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ nâng cao kỹ năng của mình. Bạn có thể tham gia học viện email miễn phí của anh ấy tại đây