딕셔너리 키와 값을 줄 바꿔 출력하는 방법 10가지

{'이름': '민수', '나이': 17, '학교': '과학고'} → 이름: 민수 / 나이: 17 / 학교: 과학고

출력 목표

다음 딕셔너리를 줄 바꿔가며 키: 값 형식으로 출력합니다.

student = {'이름': '민수', '나이': 17, '학교': '과학고'}

원하는 출력 결과

이름: 민수
나이: 17
학교: 과학고
핵심은 딕셔너리의 keyvalue를 하나씩 꺼내서 출력하는 것입니다.

1. for문 + items() 사용

가장 기본적이고 많이 사용하는 방법입니다.

student = {'이름': '민수', '나이': 17, '학교': '과학고'}

for key, value in student.items():
    print(key, ":", value)

출력 결과

이름 : 민수
나이 : 17
학교 : 과학고
items()는 딕셔너리의 키와 값을 동시에 꺼낼 때 사용합니다.

2. f-string 사용

출력 형식을 깔끔하게 만들 수 있는 추천 방법입니다.

student = {'이름': '민수', '나이': 17, '학교': '과학고'}

for key, value in student.items():
    print(f"{key}: {value}")

출력 결과

이름: 민수
나이: 17
학교: 과학고
가장 보기 좋고 실무에서도 많이 사용하는 방식입니다.

3. format() 함수 사용

f-string 대신 format()을 사용할 수도 있습니다.

student = {'이름': '민수', '나이': 17, '학교': '과학고'}

for key, value in student.items():
    print("{}: {}".format(key, value))

출력 결과

이름: 민수
나이: 17
학교: 과학고
Python 구버전 코드에서도 자주 볼 수 있는 방식입니다.

4. 문자열 연결 사용

+ 연산자로 문자열을 직접 연결합니다.

student = {'이름': '민수', '나이': 17, '학교': '과학고'}

for key, value in student.items():
    print(key + ": " + str(value))

출력 결과

이름: 민수
나이: 17
학교: 과학고
나이 17은 정수이므로 문자열과 연결하려면 str(value)로 바꿔야 합니다.

5. join() 사용

여러 줄 문자열을 만든 뒤 한 번에 출력하는 방법입니다.

student = {'이름': '민수', '나이': 17, '학교': '과학고'}

result = "\n".join(f"{key}: {value}" for key, value in student.items())

print(result)

출력 결과

이름: 민수
나이: 17
학교: 과학고
"\n"은 줄 바꿈을 의미합니다.

6. 리스트 컴프리헨션 사용

출력할 문장을 리스트로 만든 뒤 합칩니다.

student = {'이름': '민수', '나이': 17, '학교': '과학고'}

lines = [f"{key}: {value}" for key, value in student.items()]

print("\n".join(lines))

출력 결과

이름: 민수
나이: 17
학교: 과학고
문자열을 먼저 리스트로 저장하므로, 중간 결과를 확인하거나 수정하기 쉽습니다.

7. for문 + keys() 사용

키를 먼저 꺼낸 뒤, 그 키로 값을 찾는 방법입니다.

student = {'이름': '민수', '나이': 17, '학교': '과학고'}

for key in student.keys():
    print(f"{key}: {student[key]}")

출력 결과

이름: 민수
나이: 17
학교: 과학고
student[key]는 해당 키에 저장된 값을 가져옵니다.

8. enumerate()로 번호와 함께 출력하기

각 항목에 번호를 붙이고 싶을 때 사용합니다.

student = {'이름': '민수', '나이': 17, '학교': '과학고'}

for number, (key, value) in enumerate(student.items(), start=1):
    print(f"{number}. {key}: {value}")

출력 결과

1. 이름: 민수
2. 나이: 17
3. 학교: 과학고
문항 목록, 학생 정보 목록처럼 순서를 표시할 때 유용합니다.

9. 함수로 만들어 출력하기

반복해서 사용할 수 있도록 함수로 만들 수 있습니다.

def print_dict(data):
    for key, value in data.items():
        print(f"{key}: {value}")

student = {'이름': '민수', '나이': 17, '학교': '과학고'}

print_dict(student)

출력 결과

이름: 민수
나이: 17
학교: 과학고
여러 딕셔너리를 같은 형식으로 출력해야 할 때 좋습니다.

10. 한 줄 코드로 출력하기

print()join()을 이용해 한 줄로 작성할 수 있습니다.

student = {'이름': '민수', '나이': 17, '학교': '과학고'}

print("\n".join(f"{k}: {v}" for k, v in student.items()))

출력 결과

이름: 민수
나이: 17
학교: 과학고
짧고 깔끔하지만, 초보자는 2번 방법처럼 for문을 나누어 쓰는 것이 이해하기 쉽습니다.

비교 정리

방법 핵심 코드 특징 추천도
for + items() for key, value in data.items() 가장 기본적인 방법 ★★★★★
f-string print(f"{key}: {value}") 형식이 깔끔함 ★★★★★
format() "{}: {}".format(key, value) 구버전에서도 사용 가능 ★★★★
문자열 연결 key + ": " + str(value) 자료형 변환 필요 ★★★
join() "\n".join(...) 여러 줄을 한 번에 출력 ★★★★
함수 사용 def print_dict(data): 재사용 가능 ★★★★★

확인 문제

문제 1. 딕셔너리에서 키와 값을 동시에 꺼낼 때 사용하는 메서드는?

① keys()    ② values()    ③ items()    ④ append()

정답: ③ items()
items()는 키와 값을 쌍으로 꺼냅니다.
문제 2. 줄 바꿈을 의미하는 특수 문자는?

① \t    ② \n    ③ \s    ④ \b

정답: ② \n
\n은 new line, 즉 줄 바꿈입니다.
문제 3. 다음 코드의 출력 결과는?
student = {'이름': '민수', '나이': 17}

for key, value in student.items():
    print(f"{key}: {value}")
정답:
이름: 민수
나이: 17