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

파이썬으로 리스트의 홀수만 출력하는 프로그램 – 3가지 방법 총정리

이 글에서는 주어진 문제를 해결하기 위한 풀이 방법과 접근 방식을 자세히 알아보겠습니다.

문제 정의

리스트(iterable)가 입력으로 주어졌을 때, 해당 리스트에 포함된 홀수들만 골라서 화면에 출력해야 합니다.

이 문제는 다양한 방식으로 해결할 수 있는데, 여기서는 가장 많이 사용되는 세 가지 접근 방법을 소개하겠습니다.

방법 1 – 향상된 for 반복문 활용

가장 기본적인 방법은 for 반복문으로 리스트를 순회하면서 각 요소를 2로 나눈 나머지를 확인하는 것입니다. 나머지가 0이 아니면 그 숫자는 홀수입니다.

예제 코드

list1 = [11,23,45,23,64,22,11,24]
# 반복문으로 요소 순회
for num in list1:
    # 홀수 여부 검사
    if num % 2 != 0:
        print(num, end = " ")

실행 결과

11 23 45 23 11

방법 2 – lambda와 filter 함수 활용

함수형 프로그래밍 스타일을 선호한다면 filter() 함수와 lambda 표현식을 조합하여 코드를 더 간결하게 작성할 수 있습니다. filter 함수는 조건을 만족하는 요소만 걸러내어 새로운 리스트로 반환합니다.

예제 코드

list1 = [11,23,45,23,64,22,11,24]
# 람다 표현식과 filter 조합
odd_no = list(filter(lambda x: (x % 2 != 0), list1))
print("리스트의 홀수: ", odd_no)

실행 결과

리스트의 홀수: [11, 23, 45, 23, 11]

방법 3 – 리스트 컴프리헨션(List Comprehension) 활용

파이썬다운 가장 우아한 방법은 리스트 컴프리헨션입니다. 한 줄의 코드로 필터링과 리스트 생성을 동시에 처리할 수 있어 가독성과 효율성이 뛰어납니다.

예제 코드

list1 = [11,23,45,23,64,22,11,24]
# 리스트 컴프리헨션
odd_nos = [num for num in list1 if num % 2 != 0]
print("홀수 목록 : ", odd_nos)

실행 결과

홀수 목록: [11, 23, 45, 23, 11]

마무리

이번 글에서는 입력으로 주어진 리스트에서 모든 홀수를 찾아내는 세 가지 방법을 살펴보았습니다. 초보자에게는 for 반복문이 이해하기 쉽고, 실무에서는 lambda + filter 또는 리스트 컴프리헨션이 더 파이썬스럽고 간결한 코드를 작성하는 데 유용합니다. 상황에 맞는 방법을 선택하여 활용해 보시기 바랍니다.