Python 문자열에 하위 문자열이 포함되어 있는지 확인하는 7가지 방법

Python 문자열에 하위 문자열이 포함되어 있는지 확인하는 7가지 방법

문자열 작업은 Python에서 일반적인 작업입니다. 문자열에 다른 문자열이 포함되어 있는지 확인해야 하는 경우가 종종 있습니다.

Python 문자열에 하위 문자열이 포함되어 있는지 확인하는 가장 간단한 방법에는 'in' 연산자, find() 함수 및 index() 메서드가 있습니다. 더 복잡한 시나리오는 정규 표현식이나 Pandas와 같은 외부 라이브러리를 사용하여 해결할 수 있습니다.

이 기사에서는 다음을 보여줍니다.

  • 네 가지 간단한 방법

  • 두 가지 더 복잡한 정규식 함수

  • Pandas 라이브러리를 사용하는 방법

구문 및 사용법의 예를 통해 각 기술을 배웁니다. 또한 다양한 요구 사항에 가장 적합한 방법에 대한 정보도 얻을 수 있습니다.

시작하자!

목차

파이썬 문자열의 기초

Python의 문자열은 텍스트 기반 데이터를 나타내는 데 사용되는 일련의 문자입니다. 여기에는 문자, 숫자, 기호 및 공백이 포함될 수 있습니다.

Python의 내장 데이터 유형 중 하나이며 다음 중 하나를 사용하여 만들 수 있습니다.

  • 작은따옴표(' ')

  • 큰따옴표(" ")

  • 삼중 따옴표("' "' 또는 """ """)

문자열은 인덱싱되므로 인덱스 번호를 참조하여 특정 문자에 액세스할 수 있습니다. 시작 색인은 0입니다. 즉, 문자열의 첫 번째 문자의 색인은 0이고 두 번째 문자의 색인은 1입니다.

다음으로 하위 문자열을 확인하는 방법을 살펴봅니다.

하위 문자열을 확인하는 가장 간단한 4가지 방법

Python은 특정 하위 문자열이 더 큰 문자열 내에 존재하는지 확인하는 여러 가지 방법을 제공합니다. 일부는 다른 것보다 더 복잡합니다. 가장 기본적인 검사의 경우 가장 간단한 방법은 in 연산자 또는 세 가지 문자열 방법 중 하나입니다.

  1. 연산자에서

  2. find() 메소드

  3. index() 메서드

  4. 카운트() 메서드

Python 문자열에 하위 문자열이 포함되어 있는지 확인하는 7가지 방법

1. 오퍼레이터에서

Python의 'in' 연산자는 한 문자열이 다른 문자열 내에 존재하는지 확인하는 간단하고 직관적인 방법입니다. 이 연산자는 멤버 자격을 확인하고 부울 값을 반환합니다.

  • 하위 문자열이 기본 문자열 내에서 발견되면 참

  • 그렇지 않은 경우 거짓

다음은 몇 가지 샘플 코드입니다.

s = "Hello, world!"
sub = "world"
result = sub in s
print(result)  # Output: True

'in' 연산자는 대소문자를 구분합니다. 즉, 소문자와 대문자를 다르게 취급합니다. 위의 코드는 하위 문자열 "hello"를 찾지 않으므로 연산자는 false를 반환합니다.

대소문자를 구분하지 않는 확인을 수행하려는 경우 확인을 수행하기 전에 기본 문자열과 하위 문자열을 모두 동일한 대소문자로 변환할 수 있습니다.

s = "Hello, world!"
sub = "hello"
result = sub.lower() in s.lower()
print(result)  # Output: True

in 연산자의 단점은 기본 문자열 내에서 하위 문자열의 위치를 ​​제공하지 않는다는 것입니다. 이를 위해서는 이 섹션에서 다른 방법이 필요합니다. 읽어…

2. Find() 메서드

find () 메서드는 하위 문자열이 나타나는 첫 번째 인덱스를 반환하거나 하위 문자열을 찾을 수 없는 경우 -1을 반환합니다.

하위 문자열 sub를 인수로 전달하여 문자열 s 에서 find() 메서드를 호출합니다 . 다음은 예입니다.

s = "Hello, world!"
sub = "world"
index = s.find(sub)

if index != -1:
     print("Found at index:", index)  # Output: Found at index: 7
else:
     print("Not found")

선택적으로 검색을 제한하기 위해 시작 또는 종료 인덱스를 지정할 수 있습니다. 이 방법의 단점은 첫 번째 발생 시 중지된다는 것입니다.

3. Index() 메서드

index () 메서드는 하위 문자열을 찾을 수 없을 때 ValueError를 발생시킨다는 점을 제외하면 find() 메서드 와 매우 유사합니다 . 이는 호출을 Try/Except 섹션으로 래핑해야 함을 의미합니다.

index() 메서드를 사용하려면 문자열 s 에서 호출 하고 하위 문자열 sub를 인수로 전달합니다.

s = "Hello, world!"
sub = "world"

try: 
     index = s.index(sub)
     print("Found at index:", index)  # Output: Found at index: 7
except ValueError:
     print("Not found")

이 메서드는 텍스트 내의 첫 번째 부분 문자열에서도 중지합니다.

4. Count() 메서드

.count () 메서드는 하위 문자열이 원래 문자열에서 나타나는 횟수를 계산합니다. 이 개수를 나타내는 정수를 반환합니다. 기본 문자열에서 하위 문자열을 찾을 수 없으면 0을 반환합니다.

다음은 "Hello, world!"라는 텍스트에서 문자 "o"를 찾는 간단한 예입니다.

s = "Hello, world!"
sub = "o"
print(s.count(sub))  # Output:2

문자열을 정규식과 일치시키는 2가지 방법

정규식 (regex)을 사용하는 것은 이전 섹션의 방법보다 약간 더 복잡합니다. 그러나 다루고 있는 텍스트를 검색하고 분석하기 위한 더 많은 옵션을 제공합니다.

re 모듈 내에서 가장 쉬운 두 가지 방법은 다음과 같습니다.

  1. 찾다()

  2. findall()

Python 문자열에 하위 문자열이 포함되어 있는지 확인하는 7가지 방법

1. re.Search()

re 모듈 의 search() 함수는 주어진 문자열 에서 패턴을 검색하고 일치하는 항목이 있으면 일치 객체를 반환합니다. 그렇지 않으면 None 을 반환합니다 .

기본적으로 함수는 대/소문자를 구분합니다. 대소문자를 구분하지 않으려면 re.IgnoreCase 플래그를 사용할 수 있습니다 .

다음은 문자열이 있는지 여부에 따라 조건문을 사용하는 간단한 예입니다.

import re
pattern = "python"
text = "I love Python programming"
match = re.search(pattern, text, re.IGNORECASE)

if match: 
     print("Pattern found")
else:
     print("Pattern not found")

이 메서드는 첫 번째 일치 항목을 찾은 다음 검색을 중지합니다. 모든 일치 항목을 찾으려면 이 목록의 다음 항목을 찾으십시오.

2. re.Findall()

이 메서드는 주어진 문자열에서 검색 패턴의 모든 항목을 찾고 모든 일치 항목을 포함하는 목록을 반환합니다.

이 예제에서는 문자열에서 하나 이상의 숫자와 일치하는 패턴을 사용합니다. 텍스트 문자열 "123, 456, 789"는 세 개의 숫자 시퀀스를 포함합니다.

import re 

pattern = "d+" 
text = "123, 456, 789" 
numbers = re.findall(pattern, text) 

print(numbers)

다음은 샘플 코드의 답변입니다: ['123', '456', '789'].

Pandas로 하위 문자열을 찾는 방법

Python 문자열에 하위 문자열이 포함되어 있는지 확인하는 7가지 방법

Pandas는 인기 있는 Python용 오픈 소스 데이터 분석 및 조작 라이브러리입니다. 구조화된 데이터를 조작하고 분석하는 데 필요한 데이터 구조와 기능을 제공합니다.

Pandas 에서 제공하는 기본 데이터 구조 중 하나는 DataFrame입니다. 이 다목적 데이터 구조를 사용하여 다른 문자열 내부의 문자열을 확인할 수 있습니다.

Pandas의 장점은 다른 프로그래밍 언어 로 광범위하게 작성해야 하는 코드 패키지를 제공한다는 것입니다 . 특히, contains 함수 내부에 많은 기능이 포함되어 있습니다.

str.contains() Pandas의 함수

str.contains () 메서드는 지정된 패턴이나 정규식이 DataFrame 열의 문자열 내에 포함되어 있는지 테스트합니다.

다음은 라이브러리를 가져오고 문자열 목록 내에서 문자열을 검색하는 예입니다.

import pandas as pd

# Creating a sample DataFrame 
data = {'fruits': ['apple', 'banana', 'cherry', 'watermelon', 'orange']} 
df = pd.DataFrame(data) 

# Searching for substrings in the 'fruits' column 
has_an = df['fruits'].str.contains(pat='an', regex=False)

# Filtering the DataFrame based on the search results 
filtered_df = df[has_an] 
print(filtered_df)

이 예에서는 'fruits' 열에서 하위 문자열 'an'을 검색하고 그에 따라 DataFrame을 필터링합니다. 출력은 다음과 같습니다.

  • 바나나 1개

  • 4 오렌지

Pandas가 무엇을 할 수 있는지에 대한 더 많은 예를 찾고 있다면 이 비디오를 확인하십시오.

Python에서 특정 방법을 선택하기 위한 팁

방법의 선택은 작업의 특정 요구 사항에 따라 크게 달라집니다.

다음은 이 기사에서 배운 방법 중 하나를 선택해야 하는 네 가지 이유와 이 블로그의 다른 곳에서 배우게 될 보너스 방법입니다.

  1. 처리 속도

  2. 하위 문자열의 위치를 ​​알아야 합니다.

  3. 하위 문자열의 발생 횟수를 알아야 합니다.

  4. 복잡한 패턴을 매치하고 싶으신 분

  5. 텍스트 분석 수행

1. 처리 속도

Python 문자열에 하위 문자열이 포함되어 있는지 확인하는 7가지 방법

'in' 0perator는 단순히 문자열 내에 하위 문자열이 존재하는지 알고 싶을 때 가장 좋은 선택입니다.

이 목적을 위해 간단하고 직관적이며 빠릅니다. 그러나 하위 문자열의 위치나 개수에 대한 정보는 제공하지 않습니다.

2. 하위 문자열의 위치

문자열 내에서 하위 문자열이 처음 나타나는 위치를 알아야 하는 경우 .find() 또는 .index() 메서드를 사용하십시오 .

둘 다 하위 문자열이 처음 나타나는 인덱스를 반환합니다.

3. 하위 문자열의 개수

문자열에서 하위 문자열이 몇 번 발생하는지 알고 싶을 때 .count() 메서드를 사용하십시오 .

4. 복잡한 패턴

복잡한 패턴을 일치시키거나 대소문자를 구분하지 않는 검색을 수행해야 하는 경우 정규 표현식이 가장 유연합니다. re.search () 함수는 단순한 하위 문자열 이상의 패턴을 처리할 수 있으며 대소문자를 구분하지 않는 검색을 쉽게 수행할 수 있습니다.

그러나 정규식은 단순한 하위 문자열 검사에 과도할 수 있으며 사용 및 유지 관리가 더 느리고 복잡할 수도 있습니다.

5. 텍스트 분석 수행

textblob 라이브러리로 작업하는 방법을 보여주는 Python의 텍스트 분석 에 대한 기사를 확인하십시오 .

.tags 기능을 사용하여 품사를 확인하거나 .ngram 기능을 사용하여 문서에서 자주 함께 나타나는 단어를 찾을 수 있습니다.

마지막 생각들

단어 또는 문자열 개체가 다른 개체에 포함되어 있는지 확인하는 7가지 방법을 배웠습니다. 여기에는 멤버십 연산자, 내장 함수, 정규식 및 Pandas 함수가 포함됩니다.

각 방법은 일부 상황에는 적합하지만 모든 경우에 적합한 것은 아닙니다. 이 기사를 치트 시트 로 사용하여 Python 프로그래밍 언어를 마스터하고 문자열 분석 작업에 가장 적합한 솔루션을 사용하십시오.

모든 경우에 적용되는 단일 방법은 없다는 점을 기억하십시오. 각 접근 방식에는 고유한 특전과 단점이 있으므로 귀하의 스타일이나 해결하려는 특정 문제에 맞는 것을 자유롭게 선택하십시오. 결국 Python은 삶을 더 쉽게 만드는 것이므로 유연성을 수용하십시오!


파이썬에서 자기란 무엇인가: 실제 사례

파이썬에서 자기란 무엇인가: 실제 사례

파이썬에서 자기란 무엇인가: 실제 사례

R에서 RDS 파일을 저장하고 로드하는 방법

R에서 RDS 파일을 저장하고 로드하는 방법

R의 .rds 파일에서 개체를 저장하고 로드하는 방법을 배웁니다. 이 블로그에서는 R에서 LuckyTemplates로 개체를 가져오는 방법도 다룹니다.

첫 N 영업일 재방문 – DAX 코딩 언어 솔루션

첫 N 영업일 재방문 – DAX 코딩 언어 솔루션

이 DAX 코딩 언어 자습서에서는 GENERATE 함수를 사용하는 방법과 측정값 제목을 동적으로 변경하는 방법을 알아봅니다.

LuckyTemplates에서 다중 스레드 동적 시각적 개체 기술을 사용한 인사이트 쇼케이스

LuckyTemplates에서 다중 스레드 동적 시각적 개체 기술을 사용한 인사이트 쇼케이스

이 자습서에서는 다중 스레드 동적 시각적 개체 기술을 사용하여 보고서의 동적 데이터 시각화에서 통찰력을 만드는 방법을 다룹니다.

LuckyTemplates의 컨텍스트 필터링 소개

LuckyTemplates의 컨텍스트 필터링 소개

이 기사에서는 필터 컨텍스트를 살펴보겠습니다. 필터 컨텍스트는 모든 LuckyTemplates 사용자가 처음에 배워야 하는 주요 주제 중 하나입니다.

LuckyTemplates 온라인 서비스에서 앱을 사용하기 위한 최고의 팁

LuckyTemplates 온라인 서비스에서 앱을 사용하기 위한 최고의 팁

LuckyTemplates Apps 온라인 서비스가 다양한 소스에서 생성된 다양한 보고서 및 인사이트를 관리하는 데 어떻게 도움이 되는지 보여주고 싶습니다.

시간 경과에 따른 이익 마진 변화 분석 - LuckyTemplates 및 DAX를 사용한 분석

시간 경과에 따른 이익 마진 변화 분석 - LuckyTemplates 및 DAX를 사용한 분석

LuckyTemplates에서 측정 분기 및 DAX 수식 결합과 같은 기술을 사용하여 수익 마진 변경을 해결하는 방법을 알아봅니다.

DAX Studio의 데이터 캐시에 대한 구체화 아이디어

DAX Studio의 데이터 캐시에 대한 구체화 아이디어

이 자습서에서는 데이터 캐시의 구체화 아이디어와 결과 제공 시 DAX 성능에 미치는 영향에 대해 설명합니다.

LuckyTemplates를 사용한 비즈니스 보고

LuckyTemplates를 사용한 비즈니스 보고

지금까지 Excel을 계속 사용하고 있다면 지금이 비즈니스 보고 요구 사항에 LuckyTemplates를 사용하기 시작하는 가장 좋은 시기입니다.

LuckyTemplates 게이트웨이란? 당신이 알아야 할 모든 것

LuckyTemplates 게이트웨이란? 당신이 알아야 할 모든 것

LuckyTemplates 게이트웨이란? 당신이 알아야 할 모든 것