Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python에서 문자열 내 특정 문자 등장 횟수 세는 방법 3가지

파이썬 프로그래밍에서 문자열과 특정 문자가 주어졌을 때, 그 문자가 문자열 안에서 총 몇 번 나타나는지 확인해야 하는 경우가 자주 있습니다. 이 글에서는 대표적인 세 가지 방법을 예제 코드와 함께 소개합니다.

1. range와 len 함수 활용

for 루프를 사용해 인덱스로 문자열의 각 문자에 하나씩 접근하면서 주어진 문자와 일치하는지 비교합니다. range와 len 함수는 문자열을 왼쪽에서 오른쪽으로 순회할 때 비교 작업을 몇 번 수행해야 하는지 범위를 정해주는 역할을 합니다.

예제 코드

Astr = "How do you do"
char = 'o'
# 주어진 문자열과 문자
print("Given String:\n", Astr)
print("Given Character:\n", char)

res = 0
for i in range(len(Astr)):
    # 문자열에서 문자 일치 여부 확인
    if Astr[i] == char:
        res = res + 1

print("Number of time character is present in string:\n", res)

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

Given String:
How do you do
Given Character:
o
Number of time character is present in string:
4

2. Counter 클래스 활용

collections 모듈의 Counter 함수를 사용하면 문자열에 포함된 각 문자별 개수를 한 번에 계산할 수 있습니다. 이후 결과에서 찾고자 하는 문자에 해당하는 키의 값을 가져오면 원하는 횟수를 얻을 수 있습니다. 여러 문자의 빈도를 동시에 분석해야 할 때 특히 유용합니다.

예제 코드

from collections import Counter

Astr = "How do you do"
char = 'o'
# 주어진 문자열과 문자
print("Given String:\n", Astr)
print("Given Character:\n", char)

count = Counter(Astr)
print("Number of time character is present in string:\n", count['o'])

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

Given String:
How do you do
Given Character:
o
Number of time character is present in string:
4

3. count() 메서드 활용 (가장 간단한 방법)

파이썬 문자열 객체에는 기본적으로 count() 메서드가 내장되어 있어, 별도의 루프나 모듈 임포트 없이 한 줄로 문자 개수를 셀 수 있습니다. 실무에서 가장 널리 쓰이는 방식입니다.

예제 코드

Astr = "How do you do"
char = 'o'

print("Number of time character is present in string:\n", Astr.count(char))

실행 결과

Number of time character is present in string:
4

마무리

학습 목적이라면 range와 len을 조합한 루프 방식이 로직 이해에 도움이 되고, 문자열 전체의 문자 빈도를 한꺼번에 분석해야 한다면 Counter가 적합합니다. 단일 문자의 개수만 필요하다면 count() 메서드가 가장 간결하고 효율적인 선택입니다. 상황에 맞는 방법을 골라 활용해 보세요.