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

파이썬으로 문자열에서 가장 많이 등장하는 문자 찾기

문자열에서 가장 자주 사용되는 문자를 찾아야 하는 경우가 있습니다. 이를 구현하는 대표적인 방법은 빈 딕셔너리(dictionary)를 생성한 뒤, 문자열의 각 문자를 하나씩 순회하면서 등장 횟수를 세는 것입니다. 딕셔너리에 해당 문자가 이미 존재하면 값을 1 증가시키고, 없다면 1로 초기화합니다. 마지막으로 딕셔너리의 값들 중 최댓값을 찾아 변수에 할당하면 됩니다.

예제 코드

다음은 실제 동작을 보여주는 예제입니다.

my_string = "Python-Interpreter"

print("The string is : ")
print(my_string)

max_frequency = {}
for i in my_string:
    if i in max_frequency:
        max_frequency[i] += 1
    else:
        max_frequency[i] = 1
my_result = max(max_frequency, key=max_frequency.get)

print("The maximum of all characters is : ")
print(my_result)

실행 결과

The string is :
Python-Interpreter
The maximum of all characters in Python-Interpreter is :
e

코드 설명

  • 먼저 문자열을 정의하고, 콘솔에 출력합니다.

  • 각 문자의 등장 횟수를 저장할 빈 딕셔너리를 생성합니다.

  • 문자열의 문자들을 하나씩 순회하면서, 해당 문자가 딕셔너리에 이미 존재하면 그 값을 1 증가시킵니다.

  • 존재하지 않는다면 해당 문자의 값을 1로 초기화합니다.

  • max() 함수와 key=max_frequency.get 옵션을 사용해 딕셔너리에서 값이 가장 큰(즉, 가장 많이 등장한) 문자를 찾습니다.

  • 그 결과를 변수에 저장한 뒤, 콘솔에 출력합니다.

참고: collections.Counter 활용하기

위 방법 외에도 파이썬 표준 라이브러리인 collections 모듈의 Counter 클래스를 사용하면 더 간결하게 구현할 수 있습니다.

from collections import Counter

my_string = "Python-Interpreter"
result = Counter(my_string).most_common(1)[0][0]
print(result)  # 출력: e

Counter는 문자열을 전달받으면 자동으로 각 문자의 개수를 세어 주며, most_common(1) 메서드로 가장 빈도가 높은 요소를 손쉽게 얻을 수 있습니다. 코드가 짧아지고 가독성도 좋아지므로, 실무에서는 이 방법을 권장합니다.