튜플 리스트에서 인덱스에 따라 요소를 번갈아 가며 합산해야 하는 경우, 간단한 반복문과 나머지 연산자(%)를 활용하면 손쉽게 해결할 수 있습니다.
짝수 인덱스에서는 튜플의 첫 번째 요소를, 홀수 인덱스에서는 두 번째 요소를 더하는 방식으로 동작합니다.
예제 코드
my_list = [(24, 11), (45, 66), (53, 52), (77, 51), (31, 10)]
print("The list is :")
print(my_list)
my_result = 0
for index in range(len(my_list)):
if index % 2 == 0:
my_result += my_list[index][0]
else:
my_result += my_list[index][1]
print("The result is :")
print(my_result)실행 결과
The list is : [(24, 11), (45, 66), (53, 52), (77, 51), (31, 10)] The result is : 225
코드 설명
- 먼저 튜플로 구성된 리스트를 정의하고 콘솔에 출력합니다.
- 합계를 저장할 변수를
0으로 초기화합니다. for반복문으로 리스트의 각 요소를 순회하면서, 나머지 연산자(%)를 사용해 해당 인덱스를 2로 나눈 나머지가 0인지 확인합니다.- 나머지가 0이라면(짝수 인덱스), 해당 튜플의 0번째 요소를 변수에 더합니다.
- 그렇지 않다면(홀수 인덱스), 첫 번째 인덱스의 요소를 변수에 더합니다.
- 최종 계산된 합계가 콘솔에 출력됩니다.
보너스: 한 줄로 작성하는 방법
enumerate와 제너레이터 표현식을 사용하면 위 코드를 다음과 같이 더 간결하게 표현할 수 있습니다.
my_result = sum(t[0] if i % 2 == 0 else t[1] for i, t in enumerate(my_list)) print(my_result) # 225
두 방법 모두 동일한 결과인 225를 반환하며, 상황에 따라 가독성이 좋은 방식을 선택하면 됩니다.