본문 바로가기

미래 먹거리를 위하여

[파이썬 정복하기] 라이브러리 3장 - 다양한 데이터 다루기5 (맥OS 기준)

OS: MAC

참고: 👉 점프 투 파이썬 - 라이브러리 예제 바로가기

013. 데이터를 보기 좋게 출력하려면? ― pprint(쁘린트 or 피피 프린트)

- pprint — “pretty print”의 줄임말로, 데이터를 보기 좋게 정렬된 형태로 출력해주는 모듈

- 구조가 복잡한 JSON 데이터를 디버깅 용도로 출력할 때 pprint를 자주 사용

구분 설명 예제 결과
모듈 임포트 예쁘게 출력할 때 사용 from pprint import pprint
기본 사용법 복잡한 리스트/딕셔너리 출력 시 자동 줄바꿈, 정렬 pprint(data) 보기 좋은 구조로 출력
폭 조절(width) 한 줄에 표현 가능한 최대 길이 지정 pprint(data, width=40) 줄바꿈 기준 조절
정렬 제어(sort_dicts) 딕셔너리 키 순서 정렬 여부 설정 pprint(data, sort_dicts=False) 입력 순서 유지
중첩 구조 출력 딕셔너리 안에 리스트가 있는 등 복잡한 구조에서 유용 pprint.pprint(data, indent=4) 들여쓰기를
4칸으로 설정

 

014. 점수에 따른 학점을 구하려면? ― bisect(바이섹트)

구분 설명 예제 결과
모듈 임포트 정렬된 구간에서 위치 자동 탐색 import bisect  
bisect_left(a, x) x를 왼쪽 기준으로 삽입할 인덱스 반환(같은 값이 있으면 그 앞에) import bisect
a = [10, 20, 30, 40, 50]
print(bisect.bisect_left(a, 30))
2
#같은 값이 있으면 그 앞에
a[2]=30 즉, 인덱스 2
bisect_right(a, x) x를 오른쪽 기준으로 삽입할 인덱스 반환 (같은 값이 있으면 그 뒤에) print(bisect.bisect_right(a, 30)) 3
bisect(a, x) bisect_right()와 동일
— 일반적으로 이걸 가장 자주 씀
print(bisect.bisect(a, 25)) 2
bisect.insort() 정렬할 수 있는 위치에 해당 항목을 삽입 import bisect
a = [60, 70, 80, 90]
bisect.insort(a, 85)
a
[60, 70, 80, 85, 90]
활용 분야 점수→학점,
등급 나누기, 구간 분류 등
점수 0~100 구간을 A~F로 분류  

 

라이브러리 예제 문제: 

점프 투 파이썬 - 라이브러리 예제 03장 14번 문제
점프 투 파이썬 - 라이브러리 예제 03장 14번 문제 풀이 결과

라이브러리 예제 문제:학점 기준이 다음과 같이 바뀐다면 어떻게 해야 할까?

  • 90점 초과: A , 80점 초과: B, 70점 초과: C, 60점 초과: D, 0~60점 : F

점프 투 파이썬 - 라이브러리 예제 03장 14번 문제 풀이 결과 2