Hướng dẫn find start and end index of string python - tìm chỉ mục bắt đầu và kết thúc của chuỗi python

Nếu bạn có một chuỗi:

example='abcdefabcdefabcdefg'

Và bạn đang tìm kiếm:

searching_for='abc'

Chức năng nào sẽ cung cấp cho bạn một danh sách với tất cả các vị trí?

positions=[(0,2),(6-8),(12-14)]

Tôi đã tạo một danh sách cửa sổ phân chia 'ví dụ' bằng 3 để nó đi từ 'ABC', 'BCD', 'CDE'

windows=['abc', 'bcd', 'cde', 'def', 'efa', 'fab', 'abc', 'bcd', 'cde', 'def', 'efa', 'fab', 'abc', 'bcd', 'cde', 'def']

và sử dụng một vòng lặp

for i in windows:
    if i == 'abc':

Đó là nơi tôi bị mắc kẹt. . .

Cải thiện bài viết

Lưu bài viết

Phương thức Find () chuỗi Python trả về chỉ số thấp nhất hoặc lần xuất hiện đầu tiên của chuỗi con nếu nó được tìm thấy trong một chuỗi nhất định. Nếu nó không được tìm thấy, thì nó sẽ trả về -1.

Examples:

Cú pháp: str_obj.find (phụ, bắt đầu, kết thúc) : test_str = ‘ Geekforgeeks is Best’ 
Output : [(1, 12), (16, 17), (19, 22)] 
Explanation : “Best” Starts at 19th index, and ends at 22nd index.

Sub: Subring cần được tìm kiếm trong chuỗi đã cho. & NBSP; : test_str = ‘ Geekforgeeks is Best’ 
Output : [(1, 12), (17, 18), (20, 23)] 
Explanation : “Best” Starts at 20th index, and ends at 23rd index. 

Bắt đầu (Tùy chọn): Vị trí bắt đầu trong đó cần kiểm tra chuỗi con trong chuỗi. & NBSP;list comprehension + regex + finditer()

Kết thúc (Tùy chọn): Vị trí kết thúc là chỉ mục của giá trị cuối cùng cho phạm vi được chỉ định. Nó được loại trừ trong khi kiểm tra. & Nbsp;

Python3

import

searching_for='abc'
0

searching_for='abc'
1
searching_for='abc'
2
searching_for='abc'
3

searching_for='abc'
4
searching_for='abc'
5
searching_for='abc'
6
searching_for='abc'
7
searching_for='abc'
8
searching_for='abc'
9

positions=[(0,2),(6-8),(12-14)]
0
searching_for='abc'
2
positions=[(0,2),(6-8),(12-14)]
22____23

searching_for='abc'
4
searching_for='abc'
5
windows=['abc', 'bcd', 'cde', 'def', 'efa', 'fab', 'abc', 'bcd', 'cde', 'def', 'efa', 'fab', 'abc', 'bcd', 'cde', 'def']
4
searching_for='abc'
7
searching_for='abc'
8
windows=['abc', 'bcd', 'cde', 'def', 'efa', 'fab', 'abc', 'bcd', 'cde', 'def', 'efa', 'fab', 'abc', 'bcd', 'cde', 'def']
7

Đầu ra

The original string is :  Geekforgeeks   is Best    for  geeks
Word Ranges are : [(1, 12), (16, 17), (19, 22), (27, 29), (32, 36)]

Độ phức tạp về thời gian: O (N) Không gian phụ trợ: O (N)O(n)
Auxiliary Space:O(n)

Cải thiện bài viết

Lưu bài viết

Phương thức Find () chuỗi Python trả về chỉ số thấp nhất hoặc lần xuất hiện đầu tiên của chuỗi con nếu nó được tìm thấy trong một chuỗi nhất định. Nếu nó không được tìm thấy, thì nó sẽ trả về -1. returns the lowest index or first occurrence of the substring if it is found in a given string. If it is not found, then it returns -1.

Cú pháp: str_obj.find (phụ, bắt đầu, kết thúc)str_obj.find(sub, start, end)

Parameters:  

  • Sub: Subring cần được tìm kiếm trong chuỗi đã cho. & NBSP; Substring that needs to be searched in the given string. 
  • Bắt đầu (Tùy chọn): Vị trí bắt đầu trong đó cần kiểm tra chuỗi con trong chuỗi. & NBSP; Starting position where the substring needs to be checked within the string. 
  • Kết thúc (Tùy chọn): Vị trí kết thúc là chỉ mục của giá trị cuối cùng cho phạm vi được chỉ định. Nó được loại trừ trong khi kiểm tra. & Nbsp; End position is the index of the last value for the specified range. It is excluded while checking. 

Trả về: & nbsp; Trả về chỉ số thấp nhất của chuỗi con nếu được tìm thấy trong một chuỗi nhất định. Nếu nó không tìm thấy thì nó sẽ trả về -1.  Returns the lowest index of the substring if it is found in a given string. If it’s not found then it returns -1.

Ví dụ Phương thức Find () Phương thức Python String ()

Python3

windows=['abc', 'bcd', 'cde', 'def', 'efa', 'fab', 'abc', 'bcd', 'cde', 'def', 'efa', 'fab', 'abc', 'bcd', 'cde', 'def']
8
searching_for='abc'
2
for i in windows:
    if i == 'abc':
0

searching_for='abc'
4
for i in windows:
    if i == 'abc':
2
for i in windows:
    if i == 'abc':
3
for i in windows:
    if i == 'abc':
4

Output:

6

Note:

  1. Nếu các chỉ mục bắt đầu và kết thúc không được cung cấp thì theo mặc định, bạn sẽ mất 0 và độ dài-1 khi các chỉ mục bắt đầu và kết thúc trong đó các chỉ mục kết thúc không được bao gồm trong tìm kiếm của chúng tôi.
  2. Phương thức find () tương tự như index (). Sự khác biệt duy nhất là tìm () return -1 nếu không tìm thấy chuỗi được tìm kiếm và index () ném một ngoại lệ trong trường hợp này.

Ví dụ 1: find () không có đối số bắt đầu và kết thúc

Python3

windows=['abc', 'bcd', 'cde', 'def', 'efa', 'fab', 'abc', 'bcd', 'cde', 'def', 'efa', 'fab', 'abc', 'bcd', 'cde', 'def']
8
searching_for='abc'
2
for i in windows:
    if i == 'abc':
0

Nếu các chỉ mục bắt đầu và kết thúc không được cung cấp thì theo mặc định, bạn sẽ mất 0 và độ dài-1 khi các chỉ mục bắt đầu và kết thúc trong đó các chỉ mục kết thúc không được bao gồm trong tìm kiếm của chúng tôi.

searching_for='abc'
4
searching_for='abc'
5
The original string is :  Geekforgeeks   is Best    for  geeks
Word Ranges are : [(1, 12), (16, 17), (19, 22), (27, 29), (32, 36)]
5
The original string is :  Geekforgeeks   is Best    for  geeks
Word Ranges are : [(1, 12), (16, 17), (19, 22), (27, 29), (32, 36)]
6

Phương thức find () tương tự như index (). Sự khác biệt duy nhất là tìm () return -1 nếu không tìm thấy chuỗi được tìm kiếm và index () ném một ngoại lệ trong trường hợp này.

searching_for='abc'
4
searching_for='abc'
5
6
4
The original string is :  Geekforgeeks   is Best    for  geeks
Word Ranges are : [(1, 12), (16, 17), (19, 22), (27, 29), (32, 36)]
6

Ví dụ 1: find () không có đối số bắt đầu và kết thúc

Substring 'geeks' found at index: 0
Substring 'for ' found at index: 6
Doesn't contains given substring
4
searching_for='abc'
4
searching_for='abc'
5
Substring 'geeks' found at index: 0
Substring 'for ' found at index: 6
Doesn't contains given substring
7
The original string is :  Geekforgeeks   is Best    for  geeks
Word Ranges are : [(1, 12), (16, 17), (19, 22), (27, 29), (32, 36)]
2

Substring 'geeks' found at index: 0
Substring 'for ' found at index: 6
Doesn't contains given substring
9
Substring 'geeks' found at index: 0
Substring 'for ' found at index: 6
Doesn't contains given substring
3

Substring 'geeks' found at index: 0
Substring 'for ' found at index: 6
Doesn't contains given substring
4
searching_for='abc'
4
searching_for='abc'
5
10
-1
-1
6
4
The original string is :  Geekforgeeks   is Best    for  geeks
Word Ranges are : [(1, 12), (16, 17), (19, 22), (27, 29), (32, 36)]
2

Output:

Substring 'geeks' found at index: 0
Substring 'for ' found at index: 6
Doesn't contains given substring

for i in windows: if i == 'abc': 8searching_for='abc' 2 The original string is : Geekforgeeks is Best for geeks Word Ranges are : [(1, 12), (16, 17), (19, 22), (27, 29), (32, 36)]0The original string is : Geekforgeeks is Best for geeks Word Ranges are : [(1, 12), (16, 17), (19, 22), (27, 29), (32, 36)]1The original string is : Geekforgeeks is Best for geeks Word Ranges are : [(1, 12), (16, 17), (19, 22), (27, 29), (32, 36)]2

for i in windows:
    if i == 'abc':
8
searching_for='abc'
2
The original string is :  Geekforgeeks   is Best    for  geeks
Word Ranges are : [(1, 12), (16, 17), (19, 22), (27, 29), (32, 36)]
0
for i in windows:
    if i == 'abc':
3
The original string is :  Geekforgeeks   is Best    for  geeks
Word Ranges are : [(1, 12), (16, 17), (19, 22), (27, 29), (32, 36)]
2

Python3

windows=['abc', 'bcd', 'cde', 'def', 'efa', 'fab', 'abc', 'bcd', 'cde', 'def', 'efa', 'fab', 'abc', 'bcd', 'cde', 'def']
8
searching_for='abc'
2
for i in windows:
    if i == 'abc':
0

searching_for='abc'
4
for i in windows:
    if i == 'abc':
2import1import2import3
for i in windows:
    if i == 'abc':
4

searching_for='abc'
4
for i in windows:
    if i == 'abc':
2import7import2import3
for i in windows:
    if i == 'abc':
4

Nếu các chỉ mục bắt đầu và kết thúc không được cung cấp thì theo mặc định, bạn sẽ mất 0 và độ dài-1 khi các chỉ mục bắt đầu và kết thúc trong đó các chỉ mục kết thúc không được bao gồm trong tìm kiếm của chúng tôi.

searching_for='abc'
4
for i in windows:
    if i == 'abc':
2
searching_for='abc'
11import2
searching_for='abc'
05import2
searching_for='abc'
15
for i in windows:
    if i == 'abc':
4

Output:

10
-1
-1
6

Hướng dẫn find start and end index of string python - tìm chỉ mục bắt đầu và kết thúc của chuỗi python

Explanation:

  • Phương thức find () tương tự như index (). Sự khác biệt duy nhất là tìm () return -1 nếu không tìm thấy chuỗi được tìm kiếm và index () ném một ngoại lệ trong trường hợp này.
  • Ví dụ 1: find () không có đối số bắt đầu và kết thúc
  • for i in windows:
        if i == 'abc':
    
    8
    searching_for='abc'
    
    2
    The original string is :  Geekforgeeks   is Best    for  geeks
    Word Ranges are : [(1, 12), (16, 17), (19, 22), (27, 29), (32, 36)]
    0
    The original string is :  Geekforgeeks   is Best    for  geeks
    Word Ranges are : [(1, 12), (16, 17), (19, 22), (27, 29), (32, 36)]
    1
    The original string is :  Geekforgeeks   is Best    for  geeks
    Word Ranges are : [(1, 12), (16, 17), (19, 22), (27, 29), (32, 36)]
    2
  • for i in windows:
        if i == 'abc':
    
    8
    searching_for='abc'
    
    2
    The original string is :  Geekforgeeks   is Best    for  geeks
    Word Ranges are : [(1, 12), (16, 17), (19, 22), (27, 29), (32, 36)]
    0
    for i in windows:
        if i == 'abc':
    
    3
    The original string is :  Geekforgeeks   is Best    for  geeks
    Word Ranges are : [(1, 12), (16, 17), (19, 22), (27, 29), (32, 36)]
    2