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

파이썬으로 리스트의 짝수·홀수 개수 세기: 3가지 방법 완벽 정리


이 글에서는 리스트에 포함된 짝수와 홀수의 개수를 각각 세는 파이썬 프로그램을 다양한 방법으로 구현하는 방법을 알아봅니다.

문제 정의 − 주어진 리스트 안에서 짝수가 몇 개이고 홀수가 몇 개인지 계산해야 합니다.

이 문제를 해결하는 대표적인 방법은 크게 세 가지가 있습니다. 하나씩 살펴보겠습니다.

방법 1 − 브루트포스(반복문) 방식

가장 기본적인 접근 방식입니다. 향상된 for 문을 사용해 리스트의 각 요소를 순회하면서 나머지 연산자(%)로 짝수와 홀수를 판별하고 카운트를 증가시킵니다.

예제 코드

list1 = [21,3,4,6,33,2,3,1,3,76]
even_count, odd_count = 0, 0
# 향상된 for 문
for num in list1:
    # 짝수인 경우
    if num % 2 == 0:
        even_count += 1
    # 홀수인 경우
    else:
        odd_count += 1
print("리스트의 짝수 개수: ", even_count)
print("리스트의 홀수 개수: ", odd_count)

실행 결과

리스트의 짝수 개수: 4
리스트의 홀수 개수: 6

방법 2 − filter() 함수와 람다(lambda) 표현식 활용

filter() 함수와 람다 표현식을 조합하면 조건을 만족하는 요소만 걸러낼 수 있습니다. 필터링된 결과를 리스트로 변환한 뒤 len() 함수로 길이를 구하면 곧 개수가 됩니다. 반복문 없이 한 줄로 처리할 수 있어 코드가 간결해집니다.

예제 코드

list1 = [21,3,4,6,33,2,3,1,3,76]
# 홀수 개수
odd_count = len(list(filter(lambda x: (x%2 != 0) , list1)))
# 짝수 개수
even_count = len(list(filter(lambda x: (x%2 == 0) , list1)))
print("리스트의 짝수 개수: ", even_count)
print("리스트의 홀수 개수: ", odd_count)

실행 결과

리스트의 짝수 개수: 4
리스트의 홀수 개수: 6

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

리스트 컴프리헨션을 사용하면 조건에 맞는 요소만 새로운 리스트에 담을 수 있습니다. 여기서는 홀수만 별도의 리스트로 추출한 후 그 길이를 구하고, 전체 리스트 길이에서 홀수 개수를 빼면 짝수 개수를 얻을 수 있습니다.

예제 코드

list1 = [21,3,4,6,33,2,3,1,3,76]
# 홀수 요소만 새 리스트에 담고, 새 리스트의 길이를 계산
only_odd = [num for num in list1 if num % 2 == 1]
odd_count = len(only_odd)
print("리스트의 짝수 개수: ", len(list1) - odd_count)
print("리스트의 홀수 개수: ", odd_count)

실행 결과

리스트의 짝수 개수: 4
리스트의 홀수 개수: 6

마무리

이번 글에서는 리스트에 들어 있는 짝수와 홀수의 개수를 세는 세 가지 방법을 살펴보았습니다. 초보자에게는 직관적인 반복문 방식이 적합하고, 간결한 코드를 원한다면 filter()와 람다 표현식 또는 리스트 컴프리헨션 방식이 좋은 선택이 될 수 있습니다. 상황과 코드 스타일에 맞는 방법을 골라 활용해 보시기 바랍니다.