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

Python에서 튜플 리스트의 모든 요소 업데이트하는 방법

튜플 리스트(리스트 안에 튜플들이 담긴 자료구조)의 모든 요소를 한 번에 업데이트해야 하는 경우가 종종 있습니다. 이럴 때 가장 간결하고 파이썬다운 방법은 바로 리스트 컴프리헨션(list comprehension)을 활용하는 것입니다.

리스트 컴프리헨션은 반복문을 한 줄로 압축하여 리스트를 순회하면서 원하는 연산을 수행할 수 있는 축약 문법입니다. 코드가 짧아질 뿐만 아니라 가독성도 뛰어나기 때문에 실무에서도 널리 사용됩니다.

예제 코드

my_list_1 = [(7, 8, 0), (3, 45, 3), (2, 22, 4)]

print("튜플 리스트 : ")
print(my_list_1)

element_to_add = 41

my_result = [tuple(j + element_to_add for j in sub) for sub in my_list_1]

print("업데이트 후 튜플 리스트 : ")
print(my_result)

실행 결과

튜플 리스트 :
[(7, 8, 0), (3, 45, 3), (2, 22, 4)]
업데이트 후 튜플 리스트 :
[(48, 49, 41), (44, 86, 44), (43, 63, 45)]

코드 설명

  • 먼저 여러 개의 튜플을 담고 있는 리스트를 정의하고, 콘솔에 출력하여 초기 상태를 확인합니다.
  • 각 요소에 더해줄 값(element_to_add = 41)을 변수로 정의합니다.
  • 리스트 컴프리헨션을 통해 튜플 리스트를 순회하면서, 내부 제너레이터 표현식이 각 튜플의 모든 요소에 해당 값을 더합니다.
  • 연산 결과는 다시 tuple() 함수로 감싸져 튜플 형태를 유지한 채 새로운 리스트로 생성됩니다.
  • 최종 결과를 변수에 할당한 뒤 콘솔에 출력합니다.

핵심 포인트

이 방식의 장점은 원본 리스트를 수정하지 않고 새로운 리스트를 생성한다는 점입니다. 튜플은 불변(immutable) 자료형이므로 요소를 직접 변경할 수 없는데, 리스트 컴프리헨션과 제너레이터 표현식을 조합하면 기존 데이터를 그대로 보존하면서 변환된 새로운 튜플 리스트를 손쉽게 만들 수 있습니다.