리스트에 담긴 요소들을 앞 요소부터 차례대로 나누는 '연속 나눗셈'을 구현해야 하는 경우가 있습니다. 이럴 때는 리스트의 각 요소를 순회하면서 / 연산자를 사용해 결과를 누적으로 계산하는 함수를 정의하면 됩니다.
아래는 실제 구현 예시입니다.
예제 코드
def consec_division(my_list):
my_result = my_list[0]
for idx in range(1, len(my_list)):
my_result /= my_list[idx]
return my_result
my_list = [2200, 500, 100, 50, 20, 5]
print("The list is :")
print(my_list)
my_result = consec_division(my_list)
print("The result is :")
print(my_result)
실행 결과
The list is :
[2200, 500, 100, 50, 20, 5]
The result is :
8.8e-06
코드 설명
consec_division이라는 이름의 함수를 정의하고, 리스트를 매개변수로 전달받습니다.리스트의 첫 번째 요소(인덱스 0)를 결과 변수
my_result에 할당합니다.인덱스 1부터 마지막 요소까지 반복하면서
/연산자를 사용해 각 요소를 누적 결과값으로 나눕니다.최종 계산된 값을 반환(return)합니다.
함수 외부에서 리스트를 정의하고 콘솔에 출력합니다.
정의한 함수에 리스트를 인자로 전달하여 호출합니다.
반환된 결과를 변수에 저장한 뒤 콘솔에 출력합니다.
참고 사항
나눗셈 연산이 포함되어 있으므로, 리스트에 0이 포함되어 있으면 ZeroDivisionError가 발생할 수 있습니다. 또한 Python의 나눗셈은 항상 실수(float)를 반환하므로, 위 예제처럼 값이 작아지면 지수 표기법(예: 8.8e-06)으로 출력됩니다. 필요하다면 functools.reduce와 operator.truediv를 조합해 한 줄로도 동일한 결과를 얻을 수 있습니다.