파이썬에서 'in' 연산자와 'find' 메서드를 사용하여 문자열 포함 여부 확인하기

2024-05-10

파이썬에서 문자열 포함 여부를 확인하는 방법

파이썬에는 문자열에 특정 서브문자열이 포함되어 있는지 확인하는 두 가지 기본적인 방법이 있습니다.

in 연산자 사용:

in 연산자는 한 문자열이 다른 문자열 안에 포함되어 있는지 확인하는 간단하고 효율적인 방법입니다.

문자열 = "안녕하세요 파이썬 세계!"
서브문자열 = "파이썬"

if 서브문자열 in 문자열:
  print(f"{서브문자열}{문자열}에 포함되어 있습니다.")
else:
  print(f"{서브문자열}{문자열}에 포함되어 있지 않습니다.")

find() 메서드는 문자열에서 특정 서브문자열의 첫 번째 위치를 찾는 데 사용됩니다. 서브문자열이 문자열에 없으면 -1을 반환합니다.

문자열 = "안녕하세요 파이썬 세계!"
서브문자열 = "파이썬"

위치 = 문자열.find(서브문자열)

if 위치 != -1:
  print(f"{서브문자열}{문자열}{위치}번째 위치에 있습니다.")
else:
  print(f"{서브문자열}{문자열}에 포함되어 있지 않습니다.")

주의 사항:

  • 두 방법 모두 대소문자를 구분합니다. 서브문자열 검색 시 대소문자를 일치시키려면 lower() 또는 upper() 메서드를 사용하여 문자열을 소문자 또는 대문자로 변환해야 합니다.
  • in 연산자는 서브문자열이 문자열의 어느 위치에든 존재하는지 확인하는 데 반면, find() 메서드는 서브문자열의 첫 번째 위치만 찾습니다.
  • 여러 개의 동일한 서브문자열이 있는 경우, find() 메서드는 가장 왼쪽에 있는 서브문자열의 위치만 반환합니다.



예제 코드

다음은 앞서 설명한 내용을 보여주는 예제 코드입니다.

# 1. `in` 연산자 사용

문자열 = "안녕하세요 파이썬 세계!"
서브문자열 = "파이썬"

if 서브문자열 in 문자열:
  print(f"{서브문자열}{문자열}에 포함되어 있습니다.")
else:
  print(f"{서브문자열}{문자열}에 포함되어 있지 않습니다.")


# 2. `find()` 메서드 사용

문자열 = "안녕하세요 파이썬 세계!"
서브문자열 = "파이썬"

위치 = 문자열.find(서브문자열)

if 위치 != -1:
  print(f"{서브문자열}{문자열}{위치}번째 위치에 있습니다.")
else:
  print(f"{서브문자열}{문자열}에 포함되어 있지 않습니다.")


# 3. 대소문자 구분 확인

문자열 = "안녕하세요 파이썬 세계!"
서브문자열 = "파이썬"

if 서브문자열.lower() in 문자열.lower():
  print(f"{서브문자열}{문자열}에 포함되어 있습니다. (대소문자 구분 없이)")
else:
  print(f"{서브문자열}{문자열}에 포함되어 있지 않습니다. (대소문자 구분 없이)")


# 4. 여러 개의 동일한 서브문자열 처리

문자열 = "파이썬은 강력하고 유연한 프로그래밍 언어입니다."
서브문자열 = "파이썬"

for 일치하는_위치 in range(len(문자열)):
  위치 = 문자열.find(서브문자열, 일치하는_위치)
  if 위치 != -1:
    print(f"{서브문자열}{문자열}{위치}번째 위치에 있습니다.")

이 코드를 실행하면 다음과 같은 출력이 나타납니다.

파이썬은 문자열에 포함되어 있습니다.
파이썬은 문자열에 0번째 위치에 있습니다.
파이썬은 강력하고 유연한 프로그래밍 언어입니다. (대소문자 구분 없이)
파이썬은 문자열에 0번째 위치에 있습니다.
파이썬은 문자열에 21번째 위치에 있습니다.

이 예제 코드는 다양한 상황에서 문자열 포함 여부를 확인하는 방법을 보여줍니다.




파이썬에서 문자열 포함 여부를 확인하는 대체 방법

앞서 언급한 in 연산자와 find() 메서드 외에도 파이썬에서 문자열 포함 여부를 확인하는 데 사용할 수 있는 몇 가지 대체 방법이 있습니다.

startswith() 및 endswith() 메서드:

  • startswith() 메서드는 문자열이 특정 서브문자열로 시작하는지 확인하는 데 사용됩니다.
  • endswith() 메서드는 문자열이 특정 서브문자열로 끝나는지 확인하는 데 사용됩니다.
문자열 = "안녕하세요 파이썬 세계!"
서브문자열 = "안녕"
서브문자열_끝 = "세계"

if 문자열.startswith(서브문자열):
  print(f"{문자열}{서브문자열}으로 시작합니다.")
if 문자열.endswith(서브문자열_끝):
  print(f"{문자열}{서브문자열_끝}으로 끝납니다.")

정규 표현식:

  • 정규 표현식은 더 복잡한 패턴을 찾는 데 강력한 도구가 될 수 있습니다.
  • 문자열 포함 여부를 확인하는 데 사용할 수 있는 몇 가지 일반적인 정규 표현식 패턴은 다음과 같습니다.
    • ^subStr: 문자열이 subStr로 시작하는지 확인합니다.
    • subStr$: 문자열이 subStr로 끝나는지 확인합니다.
    • subStr: 문자열이 어디에든 subStr를 포함하는지 확인합니다.
import re

문자열 = "안녕하세요 파이썬 세계!"
서브문자열 = "파이썬"

if re.search(서브문자열, 문자열):
  print(f"{문자열}{서브문자열}을 포함합니다.")

문자열 슬라이싱:

  • 문자열 슬라이싱을 사용하여 서브문자열과 일치하는지 확인할 수 있습니다.
  • 이 방법은 간단하지만 서브문자열이 문자열의 여러 위치에 나타날 수 있는 경우에는 적합하지 않습니다.
문자열 = "안녕하세요 파이썬 세계!"
서브문자열 = "파이썬"

if 문자열[len(문자열) - len(서브문자열):] == 서브문자열:
  print(f"{문자열}{서브문자열}로 끝납니다.")

주의 사항:

  • 각 방법에는 고유한 장단점이 있습니다. 특정 상황에 가장 적합한 방법을 선택하는 것이 중요합니다.
  • in 연산자와 find() 메서드는 일반적으로 가장 간단하고 효율적인 방법이지만, 더 복잡한 패턴 일치가 필요한 경우 정규 표현식이 더 나은 선택일 수 있습니다.

python string substring


Django CSRF 예제

이 문제를 해결하기 위해 다음 단계를 따르십시오.CSRF 토큰 추가Django 템플릿에 다음 코드를 추가하여 CSRF 토큰을 삽입합니다.이 코드는 숨겨진 입력 필드를 생성하여 CSRF 토큰을 포함합니다.Ajax 요청 헤더에 CSRF 토큰 설정...


파이썬에서 다중 행 주석을 만드는 방법

파이썬에서 다중 행 주석을 만드는 두 가지 기본 방법이 있습니다.해시 문자 (#) 사용:가장 일반적인 방법은 각 주석 행의 시작에 해시 문자 (#)를 사용하는 것입니다. 이 방법을 사용하면 다음과 같이 여러 줄에 걸쳐 주석을 만들 수 있습니다...


Python, PostgreSQL, SQLAlchemy에서 발생하는 'Strange SQLAlchemy error message: TypeError: 'dict' object does not support indexing' 오류 해결

Python, PostgreSQL, SQLAlchemy를 사용하면서 다음과 같은 오류 메시지가 발생합니다.원인:이 오류는 SQLAlchemy 쿼리가 사전 객체를 인덱싱하려고 시도할 때 발생합니다. 사전 객체는 키-값 쌍으로 구성된 데이터 구조이지만 배열처럼 요소를 인덱싱할 수는 없습니다...


PyTorch에서 GPU 사용하지 않도록 설정하는 방법

사용 가능한 GPU가 없는 경우디버깅을 위해 모델을 느리게 실행해야 하는 경우GPU 사용으로 인해 발생하는 메모리 문제를 해결해야 하는 경우PyTorch에서 GPU 사용을 비활성화하는 방법은 여러 가지가 있습니다.이 코드는 torch...


PyTorch에서 unsqueeze 함수: 차원 삽입 완벽 가이드

차원 맞추기:연산을 위해 텐서 차원이 일치해야 하는 경우 unsqueeze 함수를 사용하여 차원을 맞출 수 있습니다.예를 들어, 2차원 텐서와 3차원 텐서에 행렬 곱셈을 수행하려면 2차원 텐서에 차원을 1개 추가하여 3차원 텐서로 만들어야 합니다...


python string substring