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

Python 튜플 리스트에서 K번째 열의 곱 구하기

튜플로 이루어진 리스트에서 특정 열(K번째 열)에 해당하는 값들을 모두 곱해야 하는 경우, 간단한 리스트 컴프리헨션(list comprehension)반복문을 활용하면 손쉽게 해결할 수 있습니다.

먼저 기본 개념부터 짚고 넘어가겠습니다. 튜플(tuple)은 불변(immutable) 자료형입니다. 즉, 한 번 정의된 값은 인덱스를 통해 접근하더라도 변경할 수 없으며, 변경을 시도하면 오류가 발생합니다. 이러한 읽기 전용 특성 덕분에 데이터를 안전하게 보호해야 할 때 유용하게 사용됩니다.

반면 리스트(list)는 정수, 실수, 문자열 등 서로 다른 자료형의 값을 함께 저장할 수 있는 가변(mutable) 자료형입니다.

튜플 리스트(list of tuple)란 말 그대로 여러 개의 튜플이 하나의 리스트 안에 담겨 있는 구조를 의미합니다.

리스트 컴프리헨션은 리스트를 순회하면서 원하는 연산을 수행할 수 있게 해주는 축약형 문법으로, 코드를 더 간결하고 가독성 좋게 만들어 줍니다.

아래는 실제 동작 예시입니다.

예제 코드

def prod_compute(my_val):
    my_result = 1
    for elem in my_val:
        my_result *= elem
    return my_result

my_list = [(51, 62, 75), (18, 39, 25), (81, 19, 99)]

print("The list is : ")
print(my_list)
print("The value of 'K' has been initialized")
K = 2

my_result = prod_compute([sub[K] for sub in my_list])

print("The product of the 'K'th Column of the list of tuples is : ")
print(my_result)

실행 결과

The list is :
[(51, 62, 75), (18, 39, 25), (81, 19, 99)]
The value of 'K' has been initialized
The product of the 'K'th Column of the list of tuples is :
185625

코드 설명

  • prod_compute라는 이름의 함수를 정의하며, 이 함수는 하나의 매개변수를 받습니다.
  • 함수 내부에서 결과값을 저장할 변수를 1로 초기화한 뒤, 매개변수로 전달받은 값을 반복문으로 순회합니다.
  • 순회 중인 각 요소를 결과 변수에 계속 곱해 나갑니다.
  • 모든 곱셈이 끝나면 최종 결과값을 반환(return)합니다.
  • 튜플 3개로 구성된 리스트를 정의하고, 콘솔에 출력하여 확인합니다.
  • K 값을 2로 설정한 후, 리스트 컴프리헨션 [sub[K] for sub in my_list]를 통해 각 튜플의 세 번째 요소(인덱스 2)만 추출합니다. 즉, (75, 25, 99)가 됩니다.
  • 추출된 값들을 prod_compute 함수에 전달하여 곱을 계산하고, 그 결과인 185625(75 × 25 × 99)를 콘솔에 출력합니다.

이처럼 리스트 컴프리헨션으로 원하는 열의 값만 추출하고, 별도의 곱셈 함수로 전달하는 방식은 코드가 짧고 명확하여 다양한 데이터 처리 상황에서 활용도가 높습니다.