30 — 데이터: 목록 통계
저장된 JSON 목록은 프로그램이 바로 쓸 수 있는 데이터입니다. 이 가이드는
숫자 목록을 파일에서 불러와 손으로 계산한 요약과 Python 표준 라이브러리로
구한 요약을 한 보고서로 출력합니다. 파일 사용이 데이터를 읽고,
statistics가 계산을 합니다.
단계
데이터 파일
numbers.json을 JSON 목록 하나로 만듭니다:
실행해 보기 →[5, 2, 9, 1, 7, 3]숫자 여섯 개를 JSON 목록으로 저장한 것입니다. 14에서는
json저장으로 딕셔너리를 저장했지요. JSON 목록도 같은 방식으로, 값이 하나씩 들어 있습니다.파일 사용 최신과json읽기로 목록을 불러옵니다. 불러온 값은 Python 리스트이므로len(숫자들)로 개수를 셀 수 있습니다.load.ko.nme로 저장하세요:
실행해 보기 →파일 사용 최신 숫자들 = json읽기("numbers.json") 말해 f"숫자 {len(숫자들)}개를 불러왔습니다"nme 실행 load.ko를 실행하면숫자 6개를 불러왔습니다가 출력됩니다. 파일에 목록이 들어 있으므로json읽기는 14의 딕셔너리가 아니라 리스트를 돌려줍니다.표준 라이브러리에서
mean과median을 불러옵니다. 24에서from datetime import date를 보았지요. 이름 두 개를 한 줄에 가져오는 방법도 같습니다:
실행해 보기 →파일 사용 최신 from statistics import mean, median 숫자들 = json읽기("numbers.json") 말해 f"평균: {mean(숫자들)}" 말해 f"중앙값: {median(숫자들)}"실행하면
평균: 4.5와중앙값: 4.0이 보입니다.mean은 값을 모두 더해 개수로 나누고,median은 목록을 정렬했을 때 가운데 값입니다.max(...)는 Python 내장 함수라 import가 필요 없습니다:
실행해 보기 →숫자들 = [5, 2, 9, 1, 7, 3] 말해 f"최댓값: {max(숫자들)}"최댓값: 9가 출력됩니다.min(숫자들)은1을 출력할 것입니다.이제 보고서 전체를 한 파일에 담습니다.
numbers.ko.nme로 저장합니다:
실행해 보기 →# numbers.ko.nme — 저장된 숫자 목록의 통계 # 실행: nme 실행 numbers.ko # numbers.json 파일이 같은 폴더에 있어야 합니다. 파일 사용 최신 from statistics import mean, median 숫자들 = json읽기("numbers.json") 말해 f"numbers.json에서 숫자 {len(숫자들)}개를 불러왔습니다:" for n in 숫자들: 말해 f" {n}" 개수 = 0 합계 = 0 for n in 숫자들: 개수 = 개수 + 1 합계 = 합계 + n 최댓값 = 숫자들[0] for n in 숫자들: if n > 최댓값: 최댓값 = n 평균 = 합계 / 개수 말해 "" 말해 f"개수: {개수}" 말해 f"합계: {합계}" 말해 f"직접 계산한 평균: {평균}" 말해 f"statistics의 mean: {mean(숫자들)}" 말해 f"statistics의 median: {median(숫자들)}" 말해 f"직접 찾은 최댓값: {최댓값}" 말해 f"max()의 최댓값: {max(숫자들)}"데이터 파일이 있는 상태에서 실행합니다:
nme 실행 numbers.konumbers.json에서 숫자 6개를 불러왔습니다: 5 2 9 1 7 3 개수: 6 합계: 27 직접 계산한 평균: 4.5 statistics의 mean: 4.5 statistics의 median: 4.0 직접 찾은 최댓값: 9 max()의 최댓값: 9손으로 짠 반복이
mean과max가 내부에서 하는 일을 보여 줍니다: 계속 더해 가는 합계와 계속 갱신되는 최댓값입니다.statistics줄은 같은 답을 각각 한 번의 호출로 냅니다.영어는 같은 단계를
use file latest와json_load로 씁니다. 전체 영어 프로그램은 영어 가이드에 있고, 이 조각은 목록을 불러옵니다:
실행해 보기 →use file latest numbers = json_load("numbers.json") show f"Loaded {len(numbers)} numbers"
직접 해보기
numbers.json을 [10, 20, 30]으로 바꾸고 numbers.ko.nme를 다시
실행해 보세요. 평균, 중앙값, 최댓값이 모두 함께 바뀝니다. 그리고 보고서에
말해 f"최솟값: {min(숫자들)}" 줄을 추가해 보세요.
배운 것
- 파일에 JSON 목록이 있으면
json읽기는 리스트를 돌려줍니다. from statistics import mean, median은 표준 라이브러리 이름 두 개를 가져옵니다.mean(숫자들)과median(숫자들)은 목록 전체를 한 번의 호출로 요약합니다.max(숫자들)와min(숫자들)은 Python 내장 함수라 import가 필요 없습니다.- 손으로 짠 반복으로도 합계와 최댓값을 한 단계씩 찾을 수 있습니다.