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

Python으로 문자열 내 모음 개수 세기와 표시하는 방법

문자열이 주어졌을 때, 그 안에 포함된 모음(vowel)이 몇 개인지, 어떤 모음들이 사용되었는지 분석해 보겠습니다. Python에서는 다양한 방법으로 이 작업을 수행할 수 있으며, 대표적인 두 가지 방법인 set을 활용한 방법과 fromkeys를 활용한 방법을 소개합니다.

1. set을 이용한 방법

먼저 문자열에서 고유한(unique) 문자들을 추출한 뒤, 해당 문자가 모음 집합에 속하는지 검사하여 결과를 확인할 수 있습니다.

예제 코드

stringA = "Tutorialspoint is best"
print("주어진 문자열:\n", stringA)
vowels = "AaEeIiOoUu"
# 모음 추출
res = set([each for each in stringA if each in vowels])
print("문자열에 존재하는 모음:\n", res)

실행 결과

위 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.

주어진 문자열:
Tutorialspoint is best
문자열에 존재하는 모음:
{'e', 'i', 'a', 'o', 'u'}

set은 중복을 허용하지 않기 때문에, 문자열에 어떤 종류의 모음이 존재하는지 한눈에 파악할 때 유용합니다.

2. fromkeys를 이용한 방법

이 방법은 각 모음을 딕셔너리(dictionary)의 키로 사용하여, 모음별로 등장 횟수를 계산합니다. 대소문자 구분 없이 세기 위해 casefold() 메서드로 문자열을 먼저 소문자로 변환합니다.

예제 코드

stringA = "Tutorialspoint is best"
# 대소문자 구분 제거
stringA = stringA.casefold()
vowels = "aeiou"
def vowel_count(string, vowels):
    # 모음을 딕셔너리 키로 설정하고 초기값 0 지정
    count = {}.fromkeys(vowels, 0)
    # 모음 개수 세기
    for v in string:
        if v in count:
            # 등장할 때마다 카운트 증가
            count[v] += 1
    return count
print("주어진 문자열:\n", stringA)
print("문자열 내 모음 개수:\n", vowel_count(stringA, vowels))

실행 결과

위 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.

주어진 문자열:
tutorialspoint is best
문자열 내 모음 개수:
{'a': 1, 'e': 1, 'i': 3, 'o': 2, 'u': 1}

정리

set 방식은 어떤 모음이 존재하는지 확인하는 데 적합하고, fromkeys 방식은 각 모음이 정확히 몇 번 등장했는지 개수까지 파악해야 할 때 유용합니다. 두 방법 모두 리스트 컴프리헨션과 딕셔너리 활용이라는 Python다운 접근법을 보여주므로, 상황에 맞게 선택하여 사용하면 됩니다.