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

파이썬에서 튜플 나누기: zip과 제너레이터 표현식 활용하기

파이썬에서 두 개의 튜플을 요소별로 나누어야 할 때는 zip 메서드제너레이터 표현식을 함께 사용하면 간단하게 처리할 수 있습니다.

핵심 개념

zip 메서드는 여러 개의 이터러블(iterable)을 인자로 받아, 각 이터러블의 요소들을 하나씩 묶어 튜플 형태로 집계한 뒤 그 결과를 반환합니다. 이를 활용하면 두 튜플의 같은 위치에 있는 요소들을 손쉽게 짝지을 수 있습니다.

제너레이터(Generator)는 이터레이터를 간단하게 만들 수 있는 방법입니다. 내부적으로 __iter__()__next__() 메서드가 구현된 클래스를 자동으로 생성하고, 내부 상태를 추적합니다. 더 이상 반환할 값이 없으면 StopIteration 예외를 발생시켜 순회를 종료합니다.

예제 코드

my_tuple_1 = (7, 8, 3, 4, 3, 2)
my_tuple_2 = (9, 6, 8, 2, 1, 4)

print("첫 번째 튜플 : ")
print(my_tuple_1)
print("두 번째 튜플 : ")
print(my_tuple_2)

my_result = tuple(elem_1 // elem_2 for elem_1, elem_2 in zip(my_tuple_1, my_tuple_2))

print("나눗셈 결과 튜플 : ")
print(my_result)

실행 결과

첫 번째 튜플 :
(7, 8, 3, 4, 3, 2)
두 번째 튜플 :
(9, 6, 8, 2, 1, 4)
나눗셈 결과 튜플 :
(0, 1, 0, 2, 3, 0)

코드 설명

  • 두 개의 튜플을 정의하고 콘솔에 출력합니다.
  • zip 메서드를 사용해 두 튜플의 요소들을 위치별로 짝지어 순회합니다.
  • 각 단계에서 첫 번째 튜플의 요소를 두 번째 튜플의 해당 요소로 //(정수 나눗셈) 연산자를 사용해 나눕니다.
  • 연산 결과들을 tuple() 함수로 변환해 하나의 튜플로 만듭니다.
  • 결과를 변수에 저장한 후 콘솔에 출력합니다.

참고 사항

// 연산자는 정수 나눗셈(버림 나눗셈)을 수행하므로 소수점 이하는 버려집니다. 예를 들어 7 // 9의 결과는 0입니다. 실수 나눗셈 결과가 필요하다면 / 연산자를 대신 사용하면 됩니다. 또한 두 번째 튜플에 0이 포함되어 있으면 ZeroDivisionError가 발생하므로, 필요하다면 조건문으로 미리 검사하는 것이 안전합니다.