리스트의 각 요소에 해당 인덱스 값을 곱한 뒤, 그 결과를 모두 더한 합계를 구해야 하는 경우 파이썬의 내장 함수인 enumerate를 활용하면 간단하게 해결할 수 있습니다. enumerate는 리스트를 순회할 때 인덱스와 요소를 동시에 반환해 주기 때문에 별도의 카운터 변수 없이 깔끔한 코드 작성이 가능합니다.
예제 코드
아래는 인덱스 값과 요소의 곱을 누적하여 합계를 구하는 예제입니다.
my_list = [71, 23, 53, 94, 85, 26, 0, 8]
print("The list is :")
print(my_list)
my_result = 0
for index, element in enumerate(my_list):
my_result += (index + 1) * element
print("The resultant sum is :")
print(my_result)
실행 결과
The list is : [71, 23, 53, 94, 85, 26, 0, 8] The resultant sum is : 1297
코드 설명
정수로 이루어진 리스트를 정의하고 콘솔에 출력합니다.
합계를 저장할 변수
my_result를 0으로 초기화합니다.enumerate함수를 사용해 리스트를 순회하며 인덱스와 요소를 동시에 가져옵니다.각 인덱스에 1을 더한 값(1부터 시작하는 순번)과 해당 요소를 곱한 뒤, 그 결과를
my_result에 누적하여 더합니다.반복이 끝나면 최종적으로 계산된 합계가 콘솔에 출력됩니다.
참고: 한 줄로 표현하기
위 로직은 제너레이터 표현식과 sum 함수를 사용하면 다음과 같이 한 줄로도 작성할 수 있습니다.
my_result = sum((index + 1) * element for index, element in enumerate(my_list))
이 방식은 가독성이 좋을 뿐만 아니라 불필요한 중간 변수를 줄여주므로, 실무에서도 자주 활용되는 파이썬다운 표현입니다.