Python Metoda string find() z przykładami

⚡ Inteligentne podsumowanie

Python string find() to wbudowana metoda, która zwraca indeks pierwszego wystąpienia podciągu w ciągu. Zwraca -1, gdy podciąg nie występuje, unikając wyjątków.

  • 🔍 Składnia: find() przyjmuje podciąg oraz opcjonalne indeksy początkowy i końcowy, aby ograniczyć zakres wyszukiwania.
  • 🎯 Pierwszy mecz: find() zwraca najniższy indeks pierwszego wystąpienia, skanując od lewej do prawej.
  • ➖ Nie znaleziono: find() zwraca wartość -1 zamiast zgłaszać błąd, gdy podciąg nie jest podany.
  • 🔁 szukaj(): Metoda rfind() zwraca najwyższy indeks i zamiast tego przeszukuje od prawej strony.
  • ⚠️ indeks(): Metoda index() zachowuje się jak find(), ale zgłasza wyjątek ValueError, gdy podciąg znaków nie istnieje.
  • 🤖 Pomoc AI: Asystenci kodowania AI generują logikę find() i umożliwiają wyszukiwanie podciągów w potokach przetwarzania języka naturalnego.

Python Znajdź ciąg()

Czym jest Python Znajdź ciąg()?

Python Znajdź ciąg() jest funkcją dostępną w Python Biblioteka do znajdowania indeksu pierwszego wystąpienia podciągu w danym ciągu. Funkcja find() zwraca -1 zamiast zgłaszać wyjątek, gdy określony podciąg nie występuje w danym ciągu. Jest to jedna z Pythonnajczęściej używany metody łańcuchowe do lokalizowania tekstu.

Składnia Python szukanie ciągu()

Podstawowa składnia Python find() wygląda następująco:

string.find(substring,start,end)

Parametry metody find().

Oto trzy parametry funkcji find() w Python:

  • podciąg: Podciąg, którego chcesz poszukać w podanym ciągu.
  • początek: (opcjonalnie) Wartość początkowa, od której rozpocznie się wyszukiwanie podciągu. Domyślnie jest to 0.
  • zakończenia: (opcjonalnie) Wartość końcowa, na której zakończy się wyszukiwanie podciągu. Domyślnie wartością jest długość ciągu.

Przykład metody find() z wartościami domyślnymi

Parametry przekazane do Python Metoda find() to podciąg, czyli ciąg, którego szukasz, oraz wartości start i end. Wartość początkowa to domyślnie 0, a wartość końcowa to długość ciągu.

W tym przykładzie użyjemy metody find() w Python z wartościami domyślnymi.

Metoda find() wyszuka podciąg i zwróci pozycję pierwszego wystąpienia podciągu. Jeśli podciąg występuje wielokrotnie w podanym ciągu, zwróci indeks lub pozycję pierwszego wystąpienia.

Przykład:

mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials is at:", mystring.find("Tutorials"))

Wyjście:

The position of Tutorials is at: 12

Przykład funkcji find() z użyciem argumentu start

Możesz wyszukać podciąg w podanym ciągu i określić pozycję początkową, od której rozpocznie się wyszukiwanie. W tym celu można użyć parametru start.

Poniższy przykład określa pozycję początkową jako 20, a metoda find() w Python rozpocznie wyszukiwanie od pozycji 20. W tym przypadku pozycją końcową będzie długość ciągu, więc wyszukiwanie będzie kontynuowane do końca ciągu od pozycji 20 w górę.

Przykład:

mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials is at:", mystring.find("Tutorials", 20))

Wyjście:

The position of Tutorials is at 48

Przykład funkcji find() z użyciem argumentów początkowych i końcowych

Używając parametrów początkowych i końcowych, możemy ograniczyć zakres wyszukiwania zamiast przeszukiwać cały ciąg.

Przykład:

mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials is at:", mystring.find("Tutorials", 5, 30))

Wyjście:

The position of Tutorials is at 12

Przykład metody find() do znalezienia pozycji danego podciągu w ciągu

Wiemy, że funkcja find() pomaga nam znaleźć indeks pierwszego wystąpienia podciągu. Zwraca -1, jeśli podciąg nie występuje w podanym ciągu. Poniższy przykład pokazuje indeks, gdy ciąg występuje, oraz -1, gdy poszukiwany podciąg nie został znaleziony.

Przykład:

mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Best site is at:", mystring.find("Best site", 5, 40))
print("The position of Guru99 is at:", mystring.find("Guru99", 20))

Wyjście:

The position of Best site is at: 27
The position of Guru99 is at: -1

Python ciąg rfind()

Python Funkcja rfind() jest podobna do funkcji find(), z tą różnicą, że rfind() zwraca najwyższy indeks dla danego podciągu, podczas gdy find() zwraca najniższy, czyli pierwszy indeks. Zarówno rfind(), jak i find() zwracają wartość -1, jeśli podciąg nie występuje.

W poniższym przykładzie mamy ciąg „Spotkanie GuruStrona 99 Tutorials. Najlepsza strona dla Python Poradniki!” i spróbuje znaleźć pozycję podciągu Tutorials za pomocą funkcji find() i rfind(). Podciąg Tutorials występuje w ciągu dwukrotnie.

Oto przykład użycia funkcji find() i rfind().

mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials using find() : ", mystring.find("Tutorials"))
print("The position of Tutorials using rfind() : ", mystring.rfind("Tutorials"))

Wyjście:

The position of Tutorials using find() :  12
The position of Tutorials using rfind() :  48

Dane wyjściowe pokazują, że find() zwraca indeks pierwszego znalezionego podciągu Tutorials, natomiast rfind() zwraca indeks ostatniego podciągu Tutorials.

Python indeks ciągu()

Python Funkcja string index() to funkcja, która podaje pozycję podanego podciągu, podobnie jak find(). Jedyną różnicą między nimi jest to, że index() zgłasza wyjątek, jeśli podciąg nie znajduje się w ciągu, podczas gdy find() zwraca wartość -1.

Oto działający przykład pokazujący zachowanie funkcji Index() i Find().

mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials using find() : ", mystring.find("Tutorials"))
print("The position of Tutorials using index() : ", mystring.index("Tutorials"))

Wyjście:

The position of Tutorials using find() :  12
The position of Tutorials using index() :  12

Otrzymujemy tę samą pozycję zarówno dla find(), jak i index(). Zobaczmy przykład, gdy podany podciąg nie występuje w ciągu.

mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials using find() : ", mystring.find("test"))
print("The position of Tutorials using index() : ", mystring.index("test"))

Wyjście:

The position of Tutorials using find() :  -1
Traceback (most recent call last):
  File "task1.py", line 3, in <module>
    print("The position of Tutorials using index() : ", mystring.index("test"))
ValueError: substring not found

W powyższym przykładzie próbujemy znaleźć pozycję podciągu „test”. Podciąg nie występuje w podanym ciągu, więc używając funkcji find() otrzymujemy pozycję -1, ale dla index() zgłasza błąd, jak pokazano powyżej.

Aby znaleźć całkowite wystąpienie podciągu

Aby znaleźć całkowitą liczbę wystąpień podciągu w danym ciągu, skorzystamy z funkcji find() w PythonBędziemy przechodzić przez ciąg za pomocą pętli for od 0 do końca ciągu, korzystając z parametru startIndex dla find().

Zmienne startIndex i count zostaną zainicjowane wartością 0. Wewnątrz pętli for sprawdzimy, czy podciąg znajduje się w podanym ciągu, używając funkcji find() z wartością startIndex równą 0.

Wartość zwrócona przez find(), jeśli różna od -1, zaktualizuje parametr startIndex do indeksu, pod którym znaleziono ciąg, a także zwiększy wartość licznika.

Oto działający przykład:

my_string = "test string test, test string testing, test string test string"
startIndex = 0
count = 0
for i in range(len(my_string)):
    k = my_string.find('test', startIndex)
    if(k != -1):
        startIndex = k+1
        count += 1
        k = 0
print("The total count of substring test is: ", count )

Wyjście:

The total count of substring test is:  6

»Dowiedz się więcej nt Python Rozdzielenie ciągu()

FAQ

Tak. Funkcja find() dokładnie dopasowuje podciąg, więc „Hello”.find(“h”) zwraca -1, natomiast „Hello”.find(“H”) zwraca 0. Jeśli potrzebujesz wyszukiwania bez uwzględniania wielkości liter, najpierw przekonwertuj ciąg za pomocą lower() lub upper().

Operator in zwraca tylko wartość True lub False, aby określić, czy podciąg istnieje. Funkcja find() idzie dalej i zwraca dokładny indeks pierwszego dopasowania lub wartość -1, jeśli podciąg nie istnieje.

Tak. Funkcja find() akceptuje ujemne indeksy początkowe i końcowe, liczone od końca ciągu. Na przykład: „Guru99”.find(“9”, -2) przeszukuje tylko dwa ostatnie znaki i zwraca ich pozycję.

Metoda str.find() lokalizuje jedno dopasowanie na raz. Aby uzyskać wszystkie dopasowania w jednym wywołaniu, użyj modułu re: re.findall() zwraca każdy pasujący podciąg, a re.finditer() zwraca obiekty dopasowania z każdą pozycją początkową.

find() to metoda obsługująca wyłącznie ciągi znaków, więc jej wywołanie na liście powoduje błąd AttributeError. Aby zlokalizować element na liście lub krotce, należy użyć metody index(), która zwraca pozycję pierwszego dopasowania.

Tak. W przypadku prostego wyszukiwania podciągów funkcja find() jest zaimplementowana w C i działa szybciej niż kompilacja wyrażenia regularnego. Po moduł re sięgaj tylko wtedy, gdy potrzebujesz wzorców, symboli wieloznacznych lub wielu dopasowań.

W uczeniu maszynowym i przetwarzaniu języka naturalnego funkcja find() lokalizuje słowa kluczowe, tagi lub separatory podczas czyszczenia i tokenizacji tekstu. Wykrywanie obecności podciągu i jego lokalizacji pomaga w budowaniu funkcji i analizie danych wejściowych modelu.

Tak. GitHub Copilot automatycznie uzupełnia wywołania find(), rfind() i index() na podstawie krótkiego komentarza opisującego cel. Narzędzia agentowej sztucznej inteligencji idą dalej, pisząc logikę wyszukiwania, dodając argumenty początkowe i końcowe oraz uruchamiając testy.

Podsumuj ten post następująco: