1. pprint란? (pretty print)
pprint
는 Python의 표준 라이브러리인 pprint
모듈에서 제공하는 함수로, 복잡한 자료형을 보기 좋게 출력하는 기능을 제공한다. 기본적으로 print
함수는 데이터를 한 줄로 출력하지만, pprint
는 중첩된 데이터 구조를 구조적으로 표현하여 가독성을 높인다.
2. 기본 사용법
pprint
를 사용하기 위해서는 먼저 pprint
모듈을 임포트해야 한다. 그 후, 원하는 데이터를 pprint
함수에 전달하면 된다.
from pprint import pprint
data = {
'name': 'Alice',
'age': 30,
'interests': ['reading', 'coding', 'hiking'],
'address': {
'city': 'Wonderland',
'zip': '12345'
}
}
pprint(data)
출력:
{'address': {'city': 'Wonderland', 'zip': '12345'},
'age': 30,
'interests': ['reading', 'coding', 'hiking'],
'name': 'Alice'}
위 예제에서 pprint
는 각 키와 값을 보기 좋게 정렬하여 출력한다.
3. pprint
의 장점
3.1 가독성 향상
print
는 복잡한 데이터 구조를 한 줄로 출력하므로, 가독성이 떨어질 수 있다. 특히, 중첩된 딕셔너리나 리스트의 경우, 정보를 쉽게 파악하기 어렵다. 반면, pprint
는 각 항목을 줄바꿈과 들여쓰기를 사용하여 명확하게 구분한다.
예를 들어, 아래와 같은 데이터를 print
로 출력하면:
data = {
'name': 'Alice',
'age': 30,
'interests': ['reading', 'coding', 'hiking'],
'address': {
'city': 'Wonderland',
'zip': '12345'
}
}
print(data)
출력:
{'name': 'Alice', 'age': 30, 'interests': ['reading', 'coding', 'hiking'], 'address': {'city': 'Wonderland', 'zip': '12345'}}
읽기가 매우 어려운 형태가 된다. 하지만 pprint
를 사용하면 각 요소가 잘 정리되어 한눈에 파악할 수 있다.
3.2 유연한 출력 옵션
pprint
는 다양한 옵션을 제공하여 출력 형식을 조정할 수 있다. 예를 들어, width
매개변수를 사용하여 출력 너비를 지정할 수 있다.
pprint(data, width=50)
이렇게 하면, 출력의 너비를 50자로 제한하여 더 간결하게 표현할 수 있습니다.
출력:
{'address': {'city': 'Wonderland',
'zip': '12345'},
'age': 30,
'interests': ['reading', 'coding', 'hiking'],
'name': 'Alice'}
3.3 깊이 제어
pprint
는 depth
매개변수를 통해 중첩된 구조의 깊이를 조정할 수 있다. 이를 통해 너무 깊게 중첩된 데이터 구조를 적절한 수준에서 잘라서 출력할 수 있다.
nested_data = {
'level1': {
'level2': {
'level3': {
'key': 'value'
}
}
}
}
pprint(nested_data, depth=2)
출력:
{'level1': {'level2': {...}}}
이렇게 설정하면 출력의 깊이를 조절하여 너무 많은 정보를 한 번에 보여주지 않도록 할 수 있다.
4. 언제 pprint
를 사용할까?
- 디버깅 시: 복잡한 데이터 구조를 조사할 때,
pprint
를 사용하면 더 빠르게 문제를 파악할 수 있다. - 데이터 분석 시: 대량의 데이터나 중첩된 데이터 구조를 다룰 때, 가독성을 높이기 위해
pprint
를 활용하면 분석 작업이 수월해진다. - 코드 문서화 시: 코드를 작성할 때, 데이터 구조를 문서화해야 하는 경우,
pprint
를 사용하여 설명하는 것이 좋다.