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

파이썬으로 리스트의 짝수·홀수 요소를 두 개의 리스트로 나누는 방법

파이썬에서 하나의 리스트에 담긴 요소들을 짝수와 홀수로 구분해 두 개의 서로 다른 리스트에 저장하고 싶을 때가 있습니다. 이럴 때는 빈 리스트 두 개를 준비한 뒤, 나머지 연산자(%)를 활용해 각 숫자가 짝수인지 홀수인지 판별하면 됩니다.

나머지 연산자는 어떤 수를 2로 나눈 나머지가 0이면 짝수, 그렇지 않으면 홀수라는 원리를 이용합니다. 아래 예제를 통해 실제 동작 과정을 살펴보겠습니다.

예제 코드

def split_list(my_list):
    even_list = []
    odd_list = []
    for i in my_list:
        if (i % 2 == 0):
            even_list.append(i)
        else:
            odd_list.append(i)
    print("짝수 리스트 :", even_list)
    print("홀수 리스트 :", odd_list)

my_list = [2, 5, 13, 17, 51, 62, 73, 84, 95]
print("원본 리스트 :")
print(my_list)
split_list(my_list)

실행 결과

원본 리스트 :
[2, 5, 13, 17, 51, 62, 73, 84, 95]
짝수 리스트 : [2, 62, 84]
홀수 리스트 : [5, 13, 17, 51, 73, 95]

코드 설명

  • 리스트를 매개변수로 받는 split_list 함수를 정의합니다.

  • 함수 내부에는 결과를 저장할 빈 리스트 두 개(even_list, odd_list)를 생성합니다.

  • for 반복문으로 매개변수로 받은 리스트의 모든 요소를 하나씩 순회하면서, 나머지 연산자 %를 사용해 해당 값이 2로 나누어 떨어지는지 확인합니다.

  • 나머지가 0이면 짝수이므로 even_list에 추가하고, 그렇지 않으면 홀수이므로 odd_list에 추가합니다.

  • 순회가 끝나면 두 리스트의 내용을 콘솔에 출력합니다.

  • 함수 외부에서 테스트용 리스트를 정의한 뒤, 이 리스트를 인자로 전달하며 함수를 호출하면 분리된 결과가 화면에 표시됩니다.

참고: 리스트 컴프리헨션으로 더 간결하게 작성하기

위 로직은 파이썬다운 문법인 리스트 컴프리헨션(list comprehension)을 사용하면 한 줄씩으로도 표현할 수 있습니다.

my_list = [2, 5, 13, 17, 51, 62, 73, 84, 95]

even_list = [x for x in my_list if x % 2 == 0]
odd_list = [x for x in my_list if x % 2 != 0]

print("짝수 리스트 :", even_list)   # [2, 62, 84]
print("홀수 리스트 :", odd_list)    # [5, 13, 17, 51, 73, 95]

이처럼 조건문과 반복문을 결합한 리스트 컴프리헨션은 코드를 더 짧고 읽기 쉽게 만들어 주므로, 간단한 필터링 작업에서 유용하게 활용할 수 있습니다.