파이썬 리스트 중간값 찾기 - paisseon liseuteu jung-gangabs chajgi

Python 파이썬] 중앙값, 중간값, 메디안 구하기 함수; Median Function

Tuesday, May 29, 2007

스폰서 링크

파이썬에 메디안 함수가 있는 줄 알았는데 찾아보니 없는 것 같았습니다. 아래 소스에 정의된 getMedian 함수를 사용하면 중앙값(메디안)을 구할 수 있습니다.

Python: 리스트(배열)의 중앙값 계산 예제


업데이트: 기존의 파이썬 2.X용 소스를 3.X용에 맞게 약간 수정하여 올립니다.
파일명: example3X.py

#!/usr/bin/python
# -*- coding: cp949 -*-


# 중앙값 구하기 함수 정의
# 크기 순으로 이미 정렬된 배열을 입력해야 함
# 범용성을 위해 이 함수 자체에는 정렬 기능이 없음
def getMedian(a):
  a_len = len(a)                # 배열 요소들의 전체 개수 구하기
  if (a_len == 0): return None  # 빈 배열은 에러 반환
  a_center = int(a_len / 2)     # 요소 개수의 절반값 구하기

  if (a_len % 2 == 1):   # 요소 개수가 홀수면
    return a[a_center]   # 홀수 개수인 배열에서는 중간 요소를 그대로 반환
  else:
    return (a[a_center - 1] + a[a_center]) / 2.0 # 짝수 개 요소는, 중간 두 수의 평균 반환



# 프로그램 본체 시작

a = [ 1, 2, 3 ]
a.sort()
print(getMedian(a))
# 출력 결과: 2


a = [ 1, 2, 3, 4 ]
a.sort()
print(getMedian(a))
# 출력 결과: 2.5


a = [ 4, 3, 1, 2 ]
a.sort()
print(getMedian(a))
# 출력 결과: 2.5


a = [ 1345, 1301, 1368, 1322, 1310, 1370, 1318, 1350, 1303, 1299 ]
a.sort()
print(getMedian(a))
# 출력 결과: 1320.0


a = [ 1, 2 ]
a.sort()
print(getMedian(a))
# 출력 결과: 1.5


a = [ 100 ]
a.sort()
print(getMedian(a))
# 출력 결과: 100






아래 소스는 기존의 2.X용 소스입니다.


소스 파일명: example.py

#!/usr/bin/python
# -*- coding: cp949 -*-


# 중앙값 구하기 함수 정의
# 크기 순으로 이미 정렬된 배열을 입력해야 함
# 범용성을 위해 이 함수 자체에는 정렬 기능이 없음
def getMedian(a):
  a_len = len(a)                # 배열 요소들의 전체 개수 구하기
  if (a_len == 0): return None  # 빈 배열은 에러 반환
  a_center = a_len / 2          # 요소 개수의 절반값 구하기

  if (a_len % 2 == 1):   # 요소 개수가 홀수면
    return a[a_center]   # 홀수 개수인 배열에서는 중간 요소를 그대로 반환
  else:
    return (a[a_center - 1] + a[a_center]) / 2.0 # 짝수 개 요소는, 중간 두 수의 평균 반환



# 프로그램 본체 시작

a = [ 1, 2, 3 ]
a.sort()
print getMedian(a)
# 출력 결과: 2


a = [ 1, 2, 3, 4 ]
a.sort()
print getMedian(a)
# 출력 결과: 2.5


a = [ 4, 3, 1, 2 ]
a.sort()
print getMedian(a)
# 출력 결과: 2.5


a = [ 1345, 1301, 1368, 1322, 1310, 1370, 1318, 1350, 1303, 1299 ]
a.sort()
print getMedian(a)
# 출력 결과: 1320.0


a = [ 1, 2 ]
a.sort()
print getMedian(a)
# 출력 결과: 1.5


a = [ 100 ]
a.sort()
print getMedian(a)
# 출력 결과: 100




▶▶ Python/파이썬] 리스트(배열) 합계, 산술 평균 구하기; List-Array Sum, Average (Mean)



더 읽기:

Python | 파이썬

posted by mwultong @ 1:11 PM

[Python] 코딩 도장 - 중간값 찾기

Updated: July 23, 2021

코딩 도장 사이트의 문제를 직접 풀어본 내용을 정리하여 올립니다.

코딩 도장에서 여러 문제를 확인할 수 있습니다.

난이도 순으로 차근차근 풀어보려 합니다.

[문제: 중간값 찾기] - Lv.1

3개의 숫자를 입력으로 받고 3개의 숫자 중에 중간값을 가지는 숫자를 출력하세요.

ex1) 2, 5, 3 => 3

ex2) 4, 6, 4 => 4

출처: //codingdojang.com/scode/585?answer_mode=hide

[풀이]

def find_median(): n1 = int(input("첫 번째 숫자를 입력하세요.")) n2 = int(input("두 번째 숫자를 입력하세요.")) n3 = int(input("세 번째 숫자를 입력하세요.")) answer = sorted([n1,n2,n3]) return answer[1] print("중간값:", find_median())

첫 번째 숫자를 입력하세요.1 두 번째 숫자를 입력하세요.8 세 번째 숫자를 입력하세요.4 중간값: 4

리스트를 정렬해서 가운데 숫자를 출력하는 방식으로 코드를 짰다.

[추천 풀이]

def Middle_num(a,b,c): lis = [a,b,c] print(sorted(lis)[1]) Middle_num(1,8,4)

4

추천 수가 가장 많은 풀이인데 사실상 똑같은 방식으로 풀었다.

Tags: codingdj, Lv1, Python

Categories: codingdj

Updated: July 23, 2021

Share on

Twitter Facebook LinkedIn
Previous Next

Leave a comment

Toplist

최신 우편물

태그