2023-10-06 22:46:56

파이썬의 리스트, 딕셔너리 등의 데이터를 print() 함수로 콘솔에 출력하여 디버깅하는 경우 데이터의 구조를 한 눈에 확인하기 어려울 때가 많습니다. 이런 경우에는 pprint() 함수를 사용하면 조금 더 예쁘게 데이터를 확인할 수 있습니다. pprint에서 앞에 붙은 p는 pretty에서 따온 것입니다.

 

pprint 모듈에 대한 공식 소개는 다음과 같습니다[1].

 

pprint 모듈은 임의의 파이썬 데이터 구조를 인터프리터의 입력으로 사용할 수 있는 형태로 “예쁘게 인쇄”할 수 있는 기능을 제공합니다. 포맷된 구조에 기본 파이썬 형이 아닌 객체가 포함되면, 표현은 로드되지 않을 수 있습니다. 파일, 소켓 또는 클래스와 같은 객체뿐만 아니라 파이썬 리터럴로 표현할 수 없는 다른 많은 객체가 포함된 경우입니다.
포맷된 표현은 할 수 있다면 객체를 한 줄에 유지하고, 허용된 너비에 맞지 않으면 여러 줄로 나눕니다.

 

이해를 돕기 위해 간단한 예시 코드를 만들어봤습니다.

from pprint import pprint

list_data = [
    [1, 2, 3, 4, 5, 6, 7, 8],
    [5, 6, 7, 8, 9, 10, 11, 12],
    [9, 10, 11, 12, 13, 14, 15, 16],
    [13, 14, 15, 16, 17, 18, 19, 20]
]

dict_data = {
    "name": "홍길동",
    "age": 999,
    "nationality": "Republic of Korea",
    "address": "Seoul"
}

print("======print 출력 결과")
print(list_data)
print(dict_data)

# ======print 출력 결과
# [[1, 2, 3, 4, 5, 6, 7, 8], [5, 6, 7, 8, 9, 10, 11, 12], [9, 10, 11, 12, 13, 14, 15, 16], [13, 14, 15, 16, 17, 18, 19, 20]]
# {'name': '홍길동', 'age': 999, 'nationality': 'Republic of Korea', 'address': 'Seoul'}

print("======pprint 출력 결과")
pprint(list_data)
pprint(dict_data)

# ======pprint 출력 결과
# [[1, 2, 3, 4, 5, 6, 7, 8],
#  [5, 6, 7, 8, 9, 10, 11, 12],
#  [9, 10, 11, 12, 13, 14, 15, 16],
#  [13, 14, 15, 16, 17, 18, 19, 20]]
# {'address': 'Seoul',
#  'age': 999,
#  'name': '홍길동',
#  'nationality': 'Republic of Korea'}

 

보시다시피 pprint() 함수를 사용하면 알아서 적절한 위치에서 개행이 되어서 훨씬 더 가독성이 좋은 것을 알 수 있습니다.

 

참고자료

[1] https://docs.python.org/ko/3/library/pprint.html