1. 멤버십 연산자로 구하기
substring in string 형식으로 표현하며, bool type로 반환한다.
string = 'abcccc'
print('abc' in string)
>>> True
print('abc' not in string)
>>> False
2. finx, index 계열 함수로 구현하기
2-1 str.find(sub[, start[, end]])
여기서 [ ] 안은 생략할 수 있다는 의미이다. 즉, str.find(substr) 또는 str.find(substr, start) 또는 str.find(substr, start, end)를 이용하여 find 함수를 이용할 수 있다.
여기서 str안에 substr이 포함되면 str 중 가장 작은 인덱스 값이 반환되며, 그렇지 않으면 -1이 반환된다.
string = 'abcccabc'
print(string.find('abc'))
>>> 0
string = 'abcccabc'
print(string.find('abc', 4))
>>> 5
string = 'abcccabc'
print(string.find('abc', 2, 6))
>>> -1
2-2 str.rfind(sub[, start [, end]])
string의 맨 끝 요소부터 탐색을 시작하여 substr을 발견하면 substr의 첫 번째 인덱스를 반환한다.
str.find와 마찬가지 방식이지만 다른 점은 str 중 가장 큰 인덱스 값이 반환된다는 차이점이 있다.
string = 'abccccc'
# substr이 한개라면 find()와 rfind()로 반환되는 인덱스값은 같다.
print(string.find('abc'))
>>> 0
print(string.rfind('abc'))
>>> 0
string = 'abccabccabc'
# substr이 두개 이상이라면 find는 그 중 인덱스 값이 가장 낮은 값을, rfind는 가장 큰 값을 반환한다.
print(string.find('abc'))
>>> 0
print(string.rfind('abc'))
>>> 8
start, end를 통해 탐색 범위를 설정하는 방법은 find()와 같다.
2-3 str.index(sub[, start [, end]])
find()와 같은 기능을 하지만 find()와는 다르게 substr이 발견되지 않으면 ValueError를 발생시킨다.
string = 'abcccc'
print(string.index('abc'))
>>> 0
string = 'abcccc'
print(string.index('abc', 3))
>>> ValueError: substring not found
2-4 str.rindex(sub[, start [, end]])
rfind()와 같은 기능을 하지만 rfind()와는 다르게 substr가 발견되지 않으면 ValueError를 발생시킨다.
string = 'abccccabc'
print(string.rindex('abc'))
>>> 6
print(string.rindex('abc', 0, 3))
>>> 0
print(string.rindex('abc', 3, 5))
>>> ValueError: substring not found
3. with 계열 함수로 구현하기
3-1 str.startswith(prefix[, start [, end]])
문자열이 지정된 prefix로 시작하면 True, 그렇지 않으면 False를 반환한다. start가 있으면 그 위치에서 검사를 시작하고, end가 있으면 해당 위치에서 비교를 중단한다.
string = 'abccccabc'
print(string.startswith('abc'))
>>> True
print(string.startswith('abc', 3))
>>> False
print(string.startswith('abc', 6))
>>> True
3-2 str.endswith(prefix[, start [, end]])
문자열이 지정된 prefix로 끝나면 True, 그렇지 않으면 False를 반환한다. start가 있으면 그 위치에서 검사를 시작하고, end가 있으면 해당 위치에서 비교를 중단한다.
string = 'abccccabc'
print(string.endswith('abc'))
>>> True
print(string.endswith('abc', 6))
>>> True
print(string.endswith('abc', 2, 5))
>>> False
출처:
https://python.flowdas.com/library/stdtypes.html?highlight=find#str.find
'컴퓨터 > 자료구조와 함께 배우는 알고리즘 입문' 카테고리의 다른 글
4. __len__(), __contains__() (0) | 2020.09.01 |
---|---|
3. 배열의 특징 (0) | 2020.08.31 |
2. 파이썬의 변수 알아보기 (0) | 2020.08.31 |
1. 조건 연산자를 사용하며 선언하기 (0) | 2020.08.30 |