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

파이썬으로 리스트에서 모음이 가장 많은 요소 출력하기

리스트에 담긴 여러 문자열 중에서 모음(vowel)의 개수가 가장 많은 요소를 찾아 출력해야 하는 경우, 리스트 컴프리헨션(list comprehension)과 반복문을 조합하면 간단하게 해결할 수 있습니다.

예제

다음은 그 구현 과정을 보여주는 예제입니다.

my_list = ["this", "week", "is", "going", "great"]

print("The list is :")
print(my_list)

my_result = ""
max_length = 0
for element in my_list:
   vowel_length = len([ch for ch in element if ch in ['a', 'e', 'o', 'u', 'i']])
   if vowel_length > max_length:
      max_length = vowel_length
      my_result = element

print("The result is :")
print(my_result)

출력 결과

The list is :
['this', 'week', 'is', 'going', 'great']
The result is :
week

코드 설명

  • 문자열로 이루어진 리스트를 정의하고 콘솔에 출력합니다.
  • 최종 결과를 저장할 빈 문자열 변수를 생성합니다.
  • 'max_length'라는 변수를 정의하고 초기값으로 0을 할당합니다.
  • 리스트를 순회하면서 리스트 컴프리헨션으로 각 문자열에 포함된 모음을 추출합니다.
  • 추출된 모음들을 리스트로 만든 뒤, 그 길이(모음 개수)를 변수에 저장합니다.
  • 해당 길이가 기존의 'max_length'보다 크면 'max_length' 값을 갱신합니다.
  • 조건을 만족하는 요소를 결과 변수에 할당합니다.
  • 최종적으로 모음이 가장 많은 요소를 콘솔에 출력합니다.

더 간결한 방법: max() 함수 활용

위 로직은 max() 함수의 key 매개변수를 사용하면 한 줄로도 작성할 수 있습니다.

my_result = max(my_list, key=lambda word: sum(1 for ch in word if ch in 'aeiou'))
print(my_result)  # week

이 방식은 별도의 임시 변수나 반복문 없이 각 문자열의 모음 개수를 기준으로 최댓값을 가진 요소를 바로 반환하므로, 코드가 더 짧고 가독성이 좋습니다.