문자열에서 가장 자주 사용되는 문자를 찾아야 하는 경우가 있습니다. 이를 구현하는 대표적인 방법은 빈 딕셔너리(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) 메서드로 가장 빈도가 높은 요소를 손쉽게 얻을 수 있습니다. 코드가 짧아지고 가독성도 좋아지므로, 실무에서는 이 방법을 권장합니다.