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

파이썬 리스트에서 교차 요소(홀짝 인덱스) 합계 구하기

숫자로 이루어진 파이썬 리스트가 주어졌을 때, 리스트 안에서 번갈아 위치한(교차하는) 요소들의 합을 구하는 방법을 알아봅니다. 여기서는 대표적인 두 가지 방법, 즉 리스트 슬라이싱과 range 함수를 활용하는 방법과 나머지 연산자(%)를 활용하는 방법을 소개합니다.

방법 1. 리스트 슬라이싱과 range 함수 활용

슬라이싱 표기법인 listA[i::2]를 사용하면 인덱스 i부터 두 칸씩 건너뛰며 요소를 추출할 수 있습니다. 여기에 range 함수와 len 함수를 조합하면 합산해야 할 요소 그룹의 수를 자동으로 계산할 수 있습니다.

예제 코드

listA = [13, 65, 78, 13, 12, 13, 65]
# 원본 리스트 출력
print("Given list : ", str(listA))
# 리스트 슬라이싱으로 교차 요소 합계 계산
res = [sum(listA[i::2])
       for i in range(len(listA) // (len(listA) // 2))]
# 결과 출력
print("Sum of alternate elements in the list :\n", res)

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

Given list : [13, 65, 78, 13, 12, 13, 65]
Sum of alternate elements in the list :
[168, 91]

listA[0::2]는 인덱스 0, 2, 4, 6에 있는 요소들(13, 78, 12, 65)을, listA[1::2]는 인덱스 1, 3, 5에 있는 요소들(65, 13, 13)을 추출합니다. 따라서 결과 리스트에는 각각 168과 91이라는 두 개의 합계가 담기게 됩니다.

방법 2. range 함수와 % 연산자 활용

나머지 연산자(%)를 사용하면 인덱스가 짝수인지 홀수인지 손쉽게 판별할 수 있습니다. 각 요소를 새로운 빈 리스트의 해당 위치에 누적하여 더한 뒤, 최종적으로 짝수 인덱스 요소의 합과 홀수 인덱스 요소의 합을 담은 리스트를 얻습니다.

예제 코드

listA = [13, 65, 78, 13, 12, 13, 65]
# 원본 리스트 출력
print("Given list : ", str(listA))
res = [0, 0]
for i in range(0, len(listA)):
    if(i % 2):
        res[1] += listA[i]
    else:
        res[0] += listA[i]
# 결과 출력
print("Sum of alternate elements in the list :\n", res)

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

Given list : [13, 65, 78, 13, 12, 13, 65]
Sum of alternate elements in the list :
[168, 91]

두 방법 모두 동일한 결과를 출력합니다. 인덱스가 짝수인 요소들의 합은 13 + 78 + 12 + 65 = 168이고, 인덱스가 홀수인 요소들의 합은 65 + 13 + 13 = 91입니다. 코드의 목적과 가독성에 따라 더 적합한 방법을 선택해 사용하시면 됩니다.