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

Python – 리스트의 연속 나눗셈 구현하기

리스트에 담긴 요소들을 앞 요소부터 차례대로 나누는 '연속 나눗셈'을 구현해야 하는 경우가 있습니다. 이럴 때는 리스트의 각 요소를 순회하면서 / 연산자를 사용해 결과를 누적으로 계산하는 함수를 정의하면 됩니다.

아래는 실제 구현 예시입니다.

예제 코드

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.reduceoperator.truediv를 조합해 한 줄로도 동일한 결과를 얻을 수 있습니다.