답변:
rfind()
또는 Python2 링크를 사용할 수 있습니다 .rindex()
rfind()
rindex()
>>> s = 'Hello StackOverflow Hi everybody'
>>> print( s.rfind('H') )
20
>>> print( s.rindex('H') )
20
>>> print( s.rfind('other') )
-1
>>> print( s.rindex('other') )
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: substring not found
차이점은 부분 문자열을 찾을 수 없을 때 예외를 발생 시키면서 rfind()
리턴합니다 (Python2 link :) .-1
rindex()
ValueError
ValueError
당신은 확인하지 않으려면 rfind()
리턴 코드를 -1
, 당신이 선호 할 수 있습니다 rindex()
이해할 수있는 오류 메시지를 제공 할 것입니다. 그렇지 않으면 -1
코드 내에서 예기치 않은 값 이 나오는 분을 검색 할 수 있습니다 ...
>>> txt = '''first line
... second line
... third line'''
>>> txt.rfind('\n')
22
>>> txt.rindex('\n')
22
more_itertools
모든 인덱스를 찾기위한 라이브러리 제공 도구 문자 또는 모든 문자열을 .
주어진
import more_itertools as mit
s = "hello"
pred = lambda x: x == "l"
암호
캐릭터
이제 rlocate
사용 가능한 도구가 있습니다.
next(mit.rlocate(s, pred))
# 3
보완 도구는 locate
다음과 같습니다.
list(mit.locate(s, pred))[-1]
# 3
mit.last(mit.locate(s, pred))
# 3
부분 문자열
window_size
여러 항목의 선행 항목을 찾는 데 사용할 수 있는 매개 변수 도 있습니다.
s = "How much wood would a woodchuck chuck if a woodchuck could chuck wood?"
substring = "chuck"
pred = lambda *args: args == tuple(substring)
next(mit.rlocate(s, pred=pred, window_size=len(substring)))
# 59
비활성 게시물을 부활 시키려고 시도하지 않았지만 아직 게시되지 않았기 때문에 ...
(이 질문을 찾기 전에 내가 한 방법입니다)
s = "hello"
target = "l"
last_pos = len(s) - 1 - s[::-1].index(target)
설명 : 마지막 항목을 검색 할 때 실제로 반전 된 문자열에서 첫 번째 항목을 검색하는 것입니다. 이것을 알고, 나는 s[::-1]
(반전 된 문자열을 반환) 그 다음에서 색인을 생성 target
했습니다. 그런 다음 반전되지 않은 (예 : 원래) 문자열 len(s) - 1 - the index found
의 색인을 원하기 때문에 수행했습니다 .
그래도 조심하십시오! 경우 target
더 하나 개의 문자보다, 당신은 아마 반전 된 문자열을 찾을 수 없습니다. 이 문제를 해결하려면 last_pos = len(s) - 1 - s[::-1].index(target[::-1])
의 역 버전을 검색하는을 사용하십시오 target
.
파이썬 문자열 rindex () 메소드
설명
Python 문자열 메서드 rindex ()는 하위 문자열 str이있는 마지막 인덱스를 반환하거나 해당 인덱스가 없으면 예외를 발생시켜 선택적으로 검색을 string [beg : end]로 제한합니다.
구문
다음은 rindex () 메소드의 구문입니다 -
str.rindex(str, beg=0 end=len(string))
매개 변수
str-검색 할 문자열을 지정합니다.
beg-시작 인덱스이며 기본적으로 0입니다.
len-기본적으로 종료 길이이며 문자열의 길이와 같습니다.
리턴 값
이 메소드는 발견 된 경우 마지막 인덱스를 리턴합니다. 그렇지 않으면 str을 찾을 수없는 경우 예외가 발생합니다.
예제
다음 예제에서는 rindex () 메서드 사용법을 보여줍니다.
라이브 데모
str1 = "this is string example....wow!!!";
str2 = "is";
print str1.rindex(str2)
print str1.index(str2)
위의 프로그램을 실행하면 다음과 같은 결과가 나타납니다.
5
2
str
변수 이름으로 사용하지 않으려면 +1 사람들이 파이썬에서 피해야 할 또 다른 변수 이름은abc
;abc
네이티브 API에서 호출 된 모듈이 있습니다.