혼.공.파 4-2 마무리 확인문제 4번

집중한 볼따구·2022년 9월 20일
0

혼.공.파 문제풀이

목록 보기
1/11

4-2 딕셔너리와 반복문 확인문제

리스트까지는 개념 이해가 쉬웠는데
딕셔너리를 이해하는 데 시간이 오래걸렸다.

4-2장 마무리 확인문제 4번을 푸는 데 이해가 잘 되지 않았다.
확인문제 4번은 딕셔너리 내부의 리스트와 딕셔너리를 for문을 활용해서 출력되게 코드를 짜는 문제이다.
딕셔너리의 키, 리스트의 인덱스에 대해서 이해를 하고있어야 하며
딕셔너리 내부의 딕셔너리의 키까지 신경써야하는 문제이다.

character={
    "name": "기사",
    "level": 12,
    "items": {
        "sword" : "불꽃의 검",
        "armor" : "풀플레이트"
    },
    "skill" : ["베기","세게 베기","아주 세게 베기"]
}
for key in character:
(빈칸 코드 채우기)

여기까지가 문제에서 주어진 코드이며
괄호 안 빈칸을 채워서

name : 기사
level : 12
sword : 불꽃의 검
armor : 풀플레이트
skill : 베기
skill : 세게 베기
skill : 아주 세게 베기

이런 식으로 출력되게 만들어야 한다.

내 첫 풀이는

for key in character:
    if type(character[key]) is dict:
        for smallkey in character[key]:
            print(smallkey,":",character[key][smallkey]);
    elif type(character[key]) is list:
        for i in character[key]:
            print(character[key],":",character[key][i])
    else:
        print(key,":",character[key])

이며, 틀렸다...

리스트출력 for문에서 오류가 났다
print를 할 때,
'list의 키 : 리스트 요소' 로 출력해야 하는데
'리스트 요소 : 요소들의 [베기]' 형식으로 출력하고 있었다 ㅋ..

정답 코드는

for key in character:
    if type(character[key]) is dict:
        for smallkey in character[key]:
            print(smallkey,":",character[key][smallkey]);
    elif type(character[key]) is list:
        for i in character[key]:
            print(key,":",i)
    else:
        print(key,":",character[key])

이것이다.

실행 결과는

이렇게 나와야 한다.

여러번 풀긴 했지만 리스트와 딕셔너리의 출력이 아직
불안해서 개념을 더 복습해야 할 거 같다.

0개의 댓글