프로그래밍/Python

[파이썬] 리스트로 평균 구하기

Ludere 2022. 2. 19. 21:50

 

 

 

자, 오늘은 리스트로 평균 구하는 법에 대해 알아보려합니다.

 

sum 함수와 len 함수만 있으면 간단하게 계산이 가능한데요. 우선은 간단하게 계산하는 법에 대해 알아보고, 더 나아가 sum 함수와 len 함수를 직접 만들어보려고해요.

 

우선 데이터들이 필요합니다. 제 주변 사람들의 나이를 평균을 내어 보겠습니다.

 

 

 

데이터 삽입

사람 A B C D E F
나이 23 28 23 23 28 24

 

사람들의 나이를 리스트 안에 넣어야합니다.

age = [23, 28, 23, 23, 28, 24]

 

 

 

데이터 추가

중간에 사람 한 명이 더 와서 데이터를 추가해야합니다.

age.append(23)
# [23, 28, 23, 23, 28, 24, 23]
사람 A B C D E F G
나이 23 28 23 23 28 24 23

append 메서드를 통해 리스트에 데이터를 추가할 수 있습니다.

 

 

 

평균 구하기

평균을 구하기 위해서는 모든 요소의 합을 구하고, 모든 요소의 개수로 나누면 됩니다. 이를 수행하는 함수가 sum과 len입니다. 

 

avg = sum(age)/len(age)
print(avg)

 

age 리스트의 합을 구해준 후에 age 개수로 나누어 평균을 구해줍니다.

 

허나, 그냥 이렇게 출력하면 소수점이 무지막지하게 길게 나오므로, 소수점 제한을 해주는 것이 좋습니다.

 

print(f'{age:.2f}')

 

 

 

sum 함수 만들기

이번에는 파이썬으로 리스트에 있는 모든 값을 더하는 함수를 만들어줄거에요. 이미 만들어진 함수가 있지만, 그 내부를 파악하기 위해 또 sum 함수를 응용할 경우가 있을 수도 있기에 진행합니다.

 

def sum(list_data):
    result = 0
    for i in list_data:
    	result += i
    return result

모든 값을 더할 변수인 result를 만들어줍니다. 빈 값인 0에 데이터를 누적하여 더해줍니다. 모두 더한 값은 return하여 반환합니다.

 

 

 

len 함수 만들기

이번에는 리스트의 개수를 세어주는 함수인 len 함수를 만들어봅니다.

def len(list_data):
    cnt = 0
    for i in list_data:
        cnt += 1
    return cnt

데이터를 누적하여 더해주어야하므로, 초기값으로 0을 설정합니다. 한 개의 데이터가 순회하여 빠져 나올 때마다 cnt에 1씩 추가해줍니다. 그리고 해당 값을 반환해줍니다.

 

 

sum 함수와 len 함수 이용하지 않고 평균 구하기

 

age = [23, 28, 23, 23, 28, 24]

result = 0
cnt = 0
for i in age:
    result += i
    cnt += 1
    
avg = result / cnt

print(f'{avg:.2f}')
반응형