파이썬의 딕셔너리(dictionary)는 키(key)와 값(value)의 쌍으로 데이터를 저장하는 자료구조입니다. 즉, 딕셔너리에 저장된 모든 값은 고유한 키와 연결되어 있으며, 이 키가 해당 값을 참조하는 기준점 역할을 합니다.
콘솔에서 딕셔너리의 내용을 확인하고 싶다면 몇 가지 방법을 사용할 수 있습니다. 딕셔너리 전체를 그대로 출력하거나, 키-값 쌍을 하나씩 개별적으로 출력하는 방식입니다.
이 글에서는 파이썬에서 딕셔너리를 출력하는 다양한 방법을 예제 코드와 함께 단계별로 살펴보겠습니다.
for 반복문으로 딕셔너리 출력하기
먼저 제빵사가 읽을 수 있도록 딕셔너리 내용을 출력하는 프로그램을 만들어 보겠습니다. 이 딕셔너리에는 스콘 한 배치를 굽기 위해 필요한 재료 이름과 각 재료의 양이 담겨 있습니다.
레시피 정보를 담은 딕셔너리를 만들어 보겠습니다.
scone = {
"self-raising flour": "350g",
"baking powder": "1 tbsp",
"butter": "85g",
"caster sugar": "3 tbsp",
"milk": "175ml",
"egg": "1 whole"
}
이 딕셔너리는 여섯 개의 키와 값으로 구성되어 있습니다. 각 키는 재료의 이름을 나타내고, 각 값은 스콘 한 배치를 만들 때 필요한 재료의 양을 의미합니다.
이제 for 반복문을 사용해 딕셔너리의 내용을 출력해 보겠습니다. items() 메서드를 활용하면 다음과 같이 작성할 수 있습니다.
for key, value in scone.items(): print(value, key)
코드를 실행하면 아래와 같은 결과가 출력됩니다.
350g self-raising flour 1 tbsp baking powder 85g butter 3 tbsp caster sugar 175ml milk 1 whole egg
코드가 성공적으로 실행되어 딕셔너리의 모든 키와 값이 화면에 출력되었습니다. items() 메서드는 딕셔너리의 모든 키와 값을 하나씩 순회할 수 있는 형태로 반환합니다. 반복문이 실행될 때마다 새로운 키-값 쌍에 접근할 수 있습니다.
첫 번째 반복에서는 "value"가 "350g", "key"가 "self-raising flour"가 됩니다. 이처럼 for 반복문은 모든 키-값 쌍이 콘솔에 출력될 때까지 계속 반복됩니다.
json 모듈로 딕셔너리 출력하기
앞선 예제에서는 for 반복문을 사용해 딕셔너리를 직접 출력했습니다. 이 방식은 재료 목록을 사람이 읽기 쉬운 형태로 만들어야 하는 경우에 적합합니다.
반면 json 모듈은 개발자가 딕셔너리의 내용을 더욱 깔끔하게 확인할 수 있도록 도와줍니다. 특히 json.dumps() 메서드를 사용하면 딕셔너리를 들여쓰기가 적용된 보기 좋은 형태로 변환할 수 있어, 개발 과정에서 콘솔로 딕셔너리 값을 점검할 때 유용합니다.
이번에는 앞서 만든 프로그램을 수정하여 json 모듈로 딕셔너리를 출력해 보겠습니다.
먼저 json 모듈을 임포트합니다.
import json
그다음 딕셔너리를 정의합니다.
scone = {
"self-raising flour": "350g",
"baking powder": "1 tbsp",
"butter": "85g",
"caster sugar": "3 tbsp",
"milk": "175ml",
"egg": "1 whole"
}
이 딕셔너리는 앞선 예제와 동일합니다. 이제 json.dumps() 메서드를 사용해 딕셔너리를 서식화(formatting)한 후 출력해 보겠습니다.
formatted = json.dumps(scone, indent=4) print(formatted)
json.dumps() 메서드를 호출할 때 두 가지 매개변수를 지정했습니다. 첫 번째는 서식화할 딕셔너리의 이름이고, 두 번째는 들여쓰기에 사용할 공백의 개수입니다. 이 예제에서는 각 들여쓰기를 공백 네 칸으로 설정했습니다.
마지막으로 print() 문을 사용해 서식화된 딕셔너리를 화면에 출력합니다. 프로그램을 실행하면 다음과 같은 결과를 볼 수 있습니다.
{
"self-raising flour": "350g",
"baking powder": "1 tbsp",
"butter": "85g",
"caster sugar": "3 tbsp",
"milk": "175ml",
"egg": "1 whole"
}
코드가 실행되면 재료 목록이 깔끔하게 정렬된 형태로 출력됩니다.
중첩 딕셔너리(Nested Dictionary) 출력하기
중첩 딕셔너리란 말 그대로 '딕셔너리 안에 또 다른 딕셔너리'가 포함된 구조를 의미합니다.
중첩 딕셔너리는 json.dumps() 메서드와 print() 문을 조합해 출력할 수도 있고, for 반복문을 사용할 수도 있습니다. for 반복문 방식은 앞선 예제와 비슷하지만 코드를 약간 수정해야 합니다.
예를 들어 딕셔너리 안의 딕셔너리에 재료 정보가 저장되어 있다고 가정해 보겠습니다.
recipes = {
"scone": {
"self-raising flour": "350g",
"baking powder": "1 tbsp",
"butter": "85g",
"caster sugar": "3 tbsp",
"milk": "175ml",
"egg": "1 whole"
}
}
"scone" 딕셔너리의 항목에 접근하려면 먼저 "recipes" 딕셔너리의 "scone" 키를 참조해야 합니다. 딕셔너리 전체를 콘솔에 출력하기 위해서는 두 개의 for 반복문을 사용합니다.
for key, value in recipes.items(): print(key) for k, v in value.items(): print(k, v)
첫 번째 for 반복문은 "recipes" 딕셔너리를 순회하고, 두 번째 for 반복문은 "recipes" 딕셔너리 안에 있는 각각의 딕셔너리를 순회합니다. 코드를 실행하면 다음과 같은 결과가 나옵니다.
scone self-raising flour 350g baking powder 1 tbsp butter 85g caster sugar 3 tbsp milk 175ml egg 1 whole
코드가 성공적으로 실행되어 "recipes" 딕셔너리의 내용과 그 안에 있는 "scone" 딕셔너리의 내용까지 모두 출력되었습니다.
마무리
파이썬에서 딕셔너리를 출력하는 방법은 크게 두 가지입니다. for 반복문을 사용하는 방법과 json 모듈을 사용하는 방법입니다. 일반적인 콘솔 출력에는 for 반복문이 적합하고, 개발자가 딕셔너리의 구조를 확인하거나 디버깅할 때는 json 모듈이 더 유용합니다.
물론 두 방법 모두 중첩 딕셔너리를 출력하는 데에도 활용할 수 있습니다.
이제 여러분도 전문 개발자처럼 파이썬 콘솔에 딕셔너리를 자유롭게 출력할 수 있습니다!