출력 목표
다음 딕셔너리를 줄 바꿔가며 키: 값 형식으로 출력합니다.
student = {'이름': '민수', '나이': 17, '학교': '과학고'}
원하는 출력 결과
이름: 민수
나이: 17
학교: 과학고
핵심은 딕셔너리의
key와 value를 하나씩 꺼내서 출력하는 것입니다.
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
이름: 민수
나이: 17