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

파이썬에서 튜플 뺄셈 수행하는 방법 – map과 lambda 완벽 가이드

파이썬에서 두 개의 튜플 사이에 뺄셈 연산을 수행해야 하는 경우, map 메서드와 lambda(람다) 함수를 함께 사용하면 간단하게 해결할 수 있습니다.

map 함수는 리스트나 튜플처럼 반복 가능한(iterable) 객체의 모든 항목에 지정된 함수나 연산을 순서대로 적용한 뒤, 그 결과를 반환하는 내장 함수입니다. 파이썬 3에서는 map 객체를 반환하므로, 최종적으로 튜플이나 리스트 형태로 변환해 주어야 합니다.

람다(lambda) 함수는 이름 없이 정의되는 익명 함수입니다. 일반적인 파이썬 함수는 def 키워드로 정의하지만, 익명 함수는 lambda 키워드를 사용해 한 줄로 정의할 수 있습니다. 람다 함수는 하나의 표현식만 가질 수 있지만, 인수는 원하는 만큼 여러 개 받을 수 있으며, 해당 표현식의 계산 결과를 반환합니다. 짧고 간단한 연산을 즉석에서 처리할 때 특히 유용합니다.

아래 예제를 통해 실제 동작 방식을 확인해 보겠습니다.

예제 코드

my_tuple_1 = (7, 8, 11, 0, 3, 4)
my_tuple_2 = (3, 2, 22, 45, 12, 9)

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

my_result = tuple(map(lambda i, j: i - j, my_tuple_1, my_tuple_2))

print("뺄셈 후 튜플은 : ")
print(my_result)

실행 결과

첫 번째 튜플은 :
(7, 8, 11, 0, 3, 4)
두 번째 튜플은 :
(3, 2, 22, 45, 12, 9)
뺄셈 후 튜플은 :
(4, 6, -11, -45, -9, -5)

코드 설명

  • 두 개의 튜플을 정의한 뒤 콘솔에 출력합니다.
  • 람다 함수 lambda i, j: i - j를 사용해 두 튜플에서 같은 위치에 있는 요소들을 서로 뺍니다.
  • map 메서드가 이 뺄셈 연산을 두 튜플의 모든 요소에 자동으로 적용합니다.
  • tuple() 함수를 통해 map 객체의 결과를 튜플 형태로 변환합니다.
  • 변환된 결과를 변수 my_result에 할당합니다.
  • 최종 결과를 콘솔에 출력합니다.

대안 방법: zip과 제너레이터 표현식 활용

map과 람다 외에도 zip 함수와 제너레이터 표현식을 조합하면 더욱 직관적인 코드를 작성할 수 있습니다.

my_result = tuple(i - j for i, j in zip(my_tuple_1, my_tuple_2))
print(my_result)  # (4, 6, -11, -45, -9, -5)

zip은 두 튜플의 요소를 위치별로 묶어주기 때문에, 어떤 요소와 어떤 요소가 연산되는지 한눈에 파악하기 쉽다는 장점이 있습니다. 두 방법 모두 성능 차이는 미미하므로, 상황과 코드 가독성에 맞게 선택하면 됩니다.