Data house
python 부분 문자열 본문
728x90
계속 헷갈리고 자료 서칭을 반복하길래 따로 정리해보려 한다.
부분 문자열
문자열에서 연속된 일부분에 해당하는 문자열을 의미합니다.
예를 들어 "ana", "ban" "anana", "banana","n"는 모두 문자열 "banana"의 부분 문자열이지만,
"aaa", "bnana", "wxyz"는 모두 "banana"의 부분 문자열이 아닙니다.
문제 url
https://school.programmers.co.kr/learn/courses/30/lessons/181843
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이 방법
1. str.find()
- 문자열에서 부분 문자열이 처음 나타나는 위치를 찾는 pythonic 솔루션
- 부분 문자열 찾을 수 없을 때는 -1을 반환
a = "banana"
b = "ana"
print(a.find(b)) # 1 반환
2. str.rfind()
- 문자열에서 부분 문자열의 마지막 위치에 대한 인덱스가 필요한 경우 사용
a = "banana"
b = "ana"
print(a.rfind(b)) # 3 반환
3. str.index()
- str.find()와 유사한 기능
- 부분 문자열을 찾을 수 없다면 ValueError를 반환
a = "banana"
b = "ana"
print(a.index(b)) # 1 반환
4. str.rindex()
- str.rfind()와 유사한 기능
a = "banana"
b = "ana"
print(a.rindex(b)) # 3 반환
5. in 연산자
- find(), index() 함수들은 문자열의 부분 문자열 위치를 알아내기 위해서만 사용
- 하위 문자열이 있는지 여부를 확인하는 경우는 in 연산자를 사용해서 내부적으로 호출
- __contains__ 사용 가능
a = "banana"
b = "ana"
print(b in a) # True
6. operator.contains()
- operator 연산자에 대한 공식 문서: https://docs.python.org/ko/3.7/library/operator.html
operator — 함수로서의 표준 연산자 — Python 3.7.16 문서
operator — 함수로서의 표준 연산자 소스 코드: Lib/operator.py operator 모듈은 파이썬의 내장 연산자에 해당하는 효율적인 함수 집합을 내보냅니다. 예를 들어, operator.add(x, y)는 x+y 표현식과 동등합니
docs.python.org
- operator.contains(x, y)는 y in x와 동일한 결과를 반환한다.
import operator
a = "banana"
b = "ana"
print(operator.contains(a,b)) # True
7. str.count()
- 문자열에서 부분 문자열의 총 발생 횟수를 반환하는 함수
- 주어진 문자열이 부분 문자열인 경우 str.count() 함수는 양수 값을 반환합니다.
a = "banana"
b = "na"
print(a.count(b)) # 2
'Computer Knowledge > 코테 대비 오답노트' 카테고리의 다른 글
[python] 공백 제거 & 문자열 앞 또는 뒤 특정 문자 제거 (0) | 2023.05.12 |
---|---|
[python] str.replace() (0) | 2023.05.08 |
[어이털리는 알고리즘] python/string - raw string, join (1) | 2023.05.06 |
[어이털리는 알고리즘] python 대소문자 변경 (0) | 2023.05.06 |
알고리즘과 시간복잡도 (0) | 2023.04.26 |