콘텐츠로 건너뛰기

Python3에서 문자열을 포함하는 방법은?

CodeMDD.io

Python 문자열에 다른 문자열이 있는지 확인하는 방법

프로그래밍이 처음이거나 Python 이외의 프로그래밍 언어에서 온 경우, Python에서 문자열에 다른 문자열이 있는지 여부를 확인하는 가장 좋은 방법을 찾고 있을 것입니다.

이 튜토리얼에서는 **멤버십 연산자 in**을 사용하여 이 작업을 처리하는 가장 Pythonic 한 방법에 초점을 맞출 것입니다. 게다가, 관련하지만 다른 사용 사례에 대한 올바른 문자열 메서드를 식별하는 방법도 배울 것입니다.

마지막으로, 판다스 열에서 부분 문자열을 찾는 방법에 대해서도 학습합니다. 이는 CSV 파일에서 데이터를 검색해야하는 경우 유용합니다. 다음 섹션에서 학습할 방법을 사용할 수 있지만, 테이블 형식의 데이터를 사용하고 있다면 데이터를 판다스 DataFrame으로 로드하고 판다스에서 부분 문자열을 검색하는 것이 좋습니다.

Python 문자열에 다른 문자열이 있는지 확인하는 방법

Python

raw_file_content = """Hi there and welcome.
This is a special hidden file with a SECRET secret.
I don't want to tell you The Secret,
but I do want to secretly tell you that I have one."""
"secret" in raw_file_content

위의 코드를 실행하면, 결과는 True로 나타납니다. in 멤버십 연산자는 문자열이 부분 문자열을 포함하는지 여부를 빠르고 읽기 쉬운 방법으로 확인하는 방법을 제공합니다. 이 코드 한 줄은 거의 영어처럼 읽힌다는 것을 알 수 있습니다.

Python

"secret" not in raw_file_content

위의 코드를 실행하면, 결과는 False로 나타납니다. 부분 문자열 "secret"raw_file_content에 존재하는 경우, not in 연산자는 False를 반환합니다.

  • Python이 부분 문자열을 찾았다면 True
  • Python이 부분 문자열을 찾지 못했다면 False

Python

if "secret" in raw_file_content:
print("Found!")

위의 코드 스니펫에서 멤버십 연산자를 사용하여 raw_file_content 문자열에 "secret"이 부분 문자열인지 확인합니다. 그렇다면 터미널에 메시지를 출력합니다.

구문을 이해하고 실험해보기 위해 Python 인터프리터 또는 Python 코드 실행 환경을 사용해 보세요. 이 방법을 익히면, 부분 문자열을 확인하고 Python 프로그램에서 다양한 작업을 수행하는 일에 도움이 될 것입니다.

소문자 대소문자와 무관하게 확인하도록 확인 범위 일반화

Python

raw_file_content_lower = raw_file_content.lower()
"secret" in raw_file_content_lower

위의 코드 스니펫은 부분 문자열 “secret”을 raw_file_content 문자열에 소문자로 변환한 raw_file_content_lower에서 찾습니다. 이러한 접근 방식은 대소문자 구분을 고려하지 않고도 부분 문자열을 찾을 수 있습니다.

부분 문자열을 찾을 때 대소문자 구분을 하는 것이 중요한 경우에는 이 방법을 사용하지 않아야 합니다.

부분 문자열에 대해 더 알아보기

”secret” 문자열이 문자열에 있는지 여부를 확인하는 것 외에도 더 많은 정보를 알고 싶을 수 있습니다. 예를 들어, 부분 문자열이 문자열에서 나타나는 횟수를 확인하거나, 부분 문자열의 위치를 확인하고 싶을 수 있습니다.

Python에서 이러한 작업을 수행하기 위해 다음과 같은 문자열 메서드를 사용할 수 있습니다:

  • count() 메서드를 사용하여 부분 문자열이 문자열에서 나타나는 횟수를 확인할 수 있습니다.
  • find() 메서드를 사용하여 부분 문자열이 문자열 내에서 처음으로 나타나는 위치를 확인할 수 있습니다.

예를 들어, raw_file_content 문자열에서 “secret”이 얼마나 자주 나타나는지 확인하려면 다음과 같이 코드를 작성할 수 있습니다:

Python

raw_file_content.count("secret")

위의 코드를 실행하면, 결과는 2로 나타납니다. 따라서 “secret”이 raw_file_content 문자열에서 두 번 나타납니다.

또 다른 예로, “secret”이 raw_file_content 문자열에서 처음으로 나타나는 위치를 찾으려면 다음과 같이 코드를 작성할 수 있습니다:

Python

raw_file_content.find("secret")

위의 코드를 실행하면, 결과는 39로 나타납니다. 따라서 “secret”은 raw_file_content 문자열의 39번째 위치에서 처음으로 나타납니다.

Regex를 사용하여 조건을 포함하는 부분 문자열 찾기

정규식(Regex)을 사용하면 부분 문자열을 찾는 데 조건을 추가할 수 있습니다. 예를 들어, 문자열 내에서 대문자로 시작하는 모든 단어를 찾으려면 다음과 같은 코드를 작성할 수 있습니다:

Python

import re
raw_file_content = "Welcome to the World of Python programming"
words_with_capital = re.findall(r"\b[A-Z]\w+", raw_file_content)
print(words_with_capital)

위의 코드를 실행하면 결과는 ['Welcome', 'World', 'Python']로 나타납니다. 이 예제에서는 정규식 패턴 \b[A-Z]\w+을 사용하여 대문자로 시작하는 모든 단어를 찾습니다.

Regex를 사용하면 더 복잡한 필터링을 수행할 수 있으므로 정교한 문자열 검색을 수행하는 데 매우 유용합니다.

pandas DataFrame 열에서 부분 문자열 찾기

만약 CSV 파일에서 데이터를 검색해야한다면, pandas 열에서 부분 문자열을 찾는 방법에 대해 알아보는 것이 좋습니다. 판다스는 데이터를 쉽게 필터링하고 부분 문자열을 검색하는 기능을 제공합니다.

예를 들어, 데이터가 다음과 같은 CSV 파일을 로드한 pandas DataFrame에 있을 수 있다고 가정해 보겠습니다:

id,name,age
1,John Smith,30
2,Jane Doe,25
3,Adam Johnson,35

이제 “name” 열에서 “John”이라는 부분 문자열을 찾으려면 다음과 같이 코드를 작성할 수 있습니다:

Python

import pandas as pd
df = pd.read_csv("data.csv")
substring = "John"
filtered_data = df[df["name"].str.contains(substring, na=False)]
print(filtered_data)

위의 코드를 실행하면, “name” 열에서 “John”이 포함된 모든 행이 출력됩니다.

판다스 DataFrame을 사용하여 부분 문자열을 검색하는 것은 복잡한 데이터 분석 작업에서 유용합니다.

요약

이 튜토리얼에서는 Python에서 문자열이 다른 문자열을 포함하고 있는지 여부를 확인하는 방법을 알아보았습니다. Python의 in 멤버십 연산자를 사용하면 간편하고 직관적인 방법으로 이 작업을 수행할 수 있습니다. 또한, 문자열 메서드를 사용하여 부분 문자열을 더 세부적으로 검색하고 조작할 수 있습니다. 그리고 판다스 DataFrame을 사용하여 CSV 파일에서 데이터를 로드하고 부분 문자열을 검색하는 방법도 학습하였습니다.

문자열을 확인하고 Python 프로그램에서 다양한 작업을 수행하는 데 도움이 될 수 있도록, Python 인터프리터나 Python 코드 실행 환경을 사용하여 구문을 실험해보세요.