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

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

이 프로그램에서는 사용자로부터 입력받아 리스트를 생성하며, 리스트에는 홀수와 짝수가 뒤섞인 요소들이 들어 있습니다. 우리가 해야 할 과제는 이 리스트를 두 개의 리스트로 분리하는 것입니다. 하나는 홀수 요소만 담고, 다른 하나는 짝수 요소만 담습니다.

예제

입력: [1, 2, 3, 4, 5, 9, 8, 6]
출력:
짝수 리스트: [2, 4, 8, 6]
홀수 리스트: [1, 3, 5, 9]

알고리즘

1단계 : 사용자 입력으로 리스트를 생성합니다.
2단계 : 홀수 전용과 짝수 전용으로 빈 리스트 두 개를 준비합니다.
3단계 : 메인 리스트의 각 요소를 순회합니다.
4단계 : 각 요소를 2로 나눈 나머지가 0이면 짝수이므로 짝수 리스트에 추가하고, 그렇지 않으면 홀수이므로 홀수 리스트에 추가합니다.

예제 코드

# 파이썬 코드 - 짝수 리스트와 홀수 리스트로 분할
# 분할 함수
def splitevenodd(A):
   evenlist = []
   oddlist = []
   for i in A:
      if (i % 2 == 0):
         evenlist.append(i)
      else:
         oddlist.append(i)
   print("Even lists:", evenlist)
   print("Odd lists:", oddlist)

# 드라이버 코드
A=list()
n=int(input("Enter the size of the First List ::"))
print("Enter the Element of First  List ::")
for i in range(int(n)):
   k=int(input(""))
   A.append(k)
splitevenodd(A)

실행 결과

Enter the size of the First List :: 8
Enter the Element of First  List ::
1
2
3
4
5
9
8
6
Even lists: [2, 4, 8, 6]
Odd lists: [1, 3, 5, 9]

코드 핵심 포인트

이 코드의 핵심은 나머지 연산자(%)입니다. 어떤 수를 2로 나눈 나머지가 0이면 짝수, 1이면 홀수라는 성질을 이용해 요소를 분류합니다. 함수 splitevenodd()는 리스트를 인자로 받아 순회하면서 조건에 따라 각각의 빈 리스트에 요소를 추가한 뒤 결과를 출력합니다.

더 간결한 방법: 리스트 컴프리헨션 활용

반복문과 조건문 대신 파이썬의 리스트 컴프리헨션(list comprehension)을 사용하면 같은 작업을 한 줄로 처리할 수 있습니다.

def splitevenodd_v2(A):
   evenlist = [x for x in A if x % 2 == 0]
   oddlist = [x for x in A if x % 2 != 0]
   print("Even lists:", evenlist)
   print("Odd lists:", oddlist)

리스트 컴프리헨션 방식은 코드가 더 짧고 가독성이 좋아 실무에서 자주 사용됩니다. 다만 초보자에게는 반복문 버전이 동작 원리를 이해하는 데 더 도움이 될 수 있습니다.