리스트에서 모음으로 시작하는 단어를 추출해야 하는 경우, 간단한 반복문과 플래그(flag) 변수, 그리고 'startswith' 메서드를 활용하면 손쉽게 해결할 수 있습니다.
아래는 그 구현 예시입니다.
예제 코드
my_list = ["abc", "phy", "and", "okay", "educate", "learn", "code"]
print("The list is :")
print(my_list)
my_result = []
my_vowel = "aeiou"
print("The vowels are ")
print(my_vowel)
for index in my_list:
my_flag = False
for element in my_vowel:
if index.startswith(element):
my_flag = True
break
if my_flag:
my_result.append(index)
print("The result is :")
print(my_result)실행 결과
The list is : ['abc', 'phy', 'and', 'okay', 'educate', 'learn', 'code'] The vowels are aeiou The result is : ['abc', 'and', 'okay', 'educate']
코드 설명
문자열 리스트를 정의하고 콘솔에 출력합니다.
결과를 저장할 빈 리스트를 생성합니다.
모음 문자열 'aeiou'를 정의하고 콘솔에 출력합니다.
리스트를 순회하면서 각 단어마다 플래그 변수를 불린(Boolean) 값 'False'로 초기화합니다.
'startswith' 메서드를 사용해 해당 단어가 모음 문자 중 하나로 시작하는지 확인하고, 조건이 참이면 플래그 값을 'True'로 설정합니다.
조건이 충족되면 'break' 문으로 내부 루프를 즉시 빠져나가 불필요한 비교를 줄입니다.
플래그 값이 'True'인 경우, 해당 요소를 결과 리스트에 추가(append)합니다.
모든 순회가 끝나면 최종 결과가 콘솔에 출력됩니다.
더 간결한 대안
'startswith' 메서드는 튜플을 인자로 받을 수 있기 때문에, 위 코드를 다음과 같이 한 줄의 리스트 컴프리헨션으로 더욱 간결하게 작성할 수도 있습니다.
my_result = [word for word in my_list if word.startswith(("a", "e", "i", "o", "u"))]
print(my_result)이 방식은 별도의 플래그 변수 없이도 동일한 결과 ['abc', 'and', 'okay', 'educate']를 얻을 수 있으며, 코드 가독성과 유지보수성 측면에서 더 권장됩니다.