rindex() wyszukiwanie od końca

0
data = "abcdefgh"
stri = data.rindex('f')
stri2 = data.rindex('b', 5)

Wyszukuje 'f' od konca i znajduje go na 5 pozycji, następnie chcę znaleźć 'b', które znajduje się na 1 poz.

Drugi argument jest pozycja z której ma wyszukiwać, więc powinno wyszukiwać od 5 poz. do 'a'?

 Traceback (most recent call last):
    stri2 = data.rindex('b', 5)
ValueError: substring not found

0

No bo przecież od końca do pozycji 5 nie ma zadnego b o_O Ty chyba chciałeś zrobić data[:5].rindex('b') ? Czy znaleźć b w podciągu od początku stringa do pozycji 5.

0
Shalom napisał(a):

No bo przecież od końca do pozycji 5 nie ma zadnego b o_O Ty chyba chciałeś zrobić data[:5].rindex('b') ? Czy znaleźć b w podciągu od początku stringa do pozycji 5.

Jak nie ma b do pozycji 5 jak b jest na pozycji 1 ??

0

No ale od końca (pozycja 7) do pozycji 5 są 3 elementy (7,6,5) i nijak nie zawiera się wśród nich element numer 1. Nie rozumiem jak niby oczekiwałeś że go znajdziesz. Ty w ogóle rozumiesz co ta funkcja robi? Ona robi slice listy od start do end, ty podałeś tlyko start na 5 więc zrobi do końca listy czyli lista[5:] a następnie szuka wystąpień ciągu w tym slice i zwraca ostatnie wystąpienie.

0
Shalom napisał(a):

No ale od końca (pozycja 7) do pozycji 5 są 3 elementy (7,6,5) i nijak nie zawiera się wśród nich element numer 1. Nie rozumiem jak niby oczekiwałeś że go znajdziesz. Ty w ogóle rozumiesz co ta funkcja robi? Ona robi slice listy od start do end, ty podałeś tlyko start na 5 więc zrobi do końca listy czyli lista[5:] a następnie szuka wystąpień ciągu w tym slice i zwraca ostatnie wystąpienie.

czyli nie dziala to tak, ze

 stri = data.rindex('f')

szuka od pozycji 7-1, a ''stri2 = data.rindex('b', 5)'' od 5-1 ?

0

Nie

stri2 = data.rindex('b', 5)

szuka od końca (tj. 7) do 5.

0

a gdy chcę szukać w np. 7-1, 5-1 to jak to zrobic?

0

Zrób ręcznie slice listy a potem w nim szukaj. x[1:5] i na tym rób find czy rfind

1 użytkowników online, w tym zalogowanych: 0, gości: 1