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

Python에서 튜플 리스트의 합계 구하기: sum()과 리스트 컴프리헨션 활용법


Python에서 튜플로 이루어진 리스트의 각 요소 합계를 구해야 할 때는 리스트 컴프리헨션(list comprehension)sum() 메서드를 조합하면 매우 간결하게 처리할 수 있습니다.

리스트는 정수, 실수, 문자열 등 서로 다른 데이터 타입의 값을 함께 저장할 수 있는 유연한 자료구조입니다. 튜플 리스트란 말 그대로 하나의 리스트 안에 여러 개의 튜플이 담겨 있는 형태를 의미합니다.

리스트 컴프리헨션은 리스트를 반복(iterate)하면서 특정 연산을 수행할 수 있게 해주는 축약형 문법입니다. 한편, sum() 메서드는 반복 가능한(iterable) 객체를 인자로 받아 해당 요소들을 모두 더한 값을 반환합니다.

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

예제 코드

my_list = [('Hi', [45, 67, 21]), ('There', [45, 32, 1]), ('Jane', [59, 13])]

print("The list is : ")
print(my_list)

my_result = [(key, sum(lst)) for key, lst in my_list]

print("The list of tuple after summation is : ")
print(my_result)

실행 결과

The list is :
[('Hi', [45, 67, 21]), ('There', [45, 32, 1]), ('Jane', [59, 13])]
The list of tuple after summation is :
[('Hi', 133), ('There', 78), ('Jane', 72)]

코드 설명

  • 먼저 문자열 키와 정수 리스트를 가지는 튜플들로 구성된 리스트를 정의한 뒤 콘솔에 출력합니다.
  • 리스트 컴프리헨션을 통해 리스트를 순회하면서, 각 튜플의 두 번째 요소인 정수 리스트를 sum()으로 모두 더합니다.
  • 연산 결과는 (키, 합계) 형태의 새로운 튜플로 만들어지며, 이들이 모여 새로운 리스트가 완성됩니다.
  • 최종 결과는 변수 my_result에 저장된 후 콘솔에 출력됩니다.

대체 방법: 일반 for 반복문 사용

리스트 컴프리헨션이 익숙하지 않다면 아래와 같이 일반적인 for 반복문으로도 동일한 결과를 얻을 수 있습니다.

my_result = []
for key, lst in my_list:
    my_result.append((key, sum(lst)))

print(my_result)
# [('Hi', 133), ('There', 78), ('Jane', 72)]

두 방식 모두 동일한 결과를 반환하지만, 리스트 컴프리헨션을 사용하면 코드가 더 간결하고 가독성이 좋아집니다. 데이터 집계나 전처리 작업에서 자주 활용되는 패턴이므로 익혀두면 유용합니다.