리스트까지는 개념 이해가 쉬웠는데
딕셔너리를 이해하는 데 시간이 오래걸렸다.
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])
이것이다.
실행 결과는
이렇게 나와야 한다.
여러번 풀긴 했지만 리스트와 딕셔너리의 출력이 아직
불안해서 개념을 더 복습해야 할 거 같다.