청소하고 정리합시다!
1. 챕터의 목표
딕셔너리
: 딕셔너리 자료형을 이해하고 key값을 이용하여 value값을 꺼낼 수 있습니다.
2. 스토리
라이캣은 회사가 커질수록 바쁜 경영과 무거운 책임감에 지쳐갔습니다.
“매일이 바람 잘 날 없구냥. 이렇게까지 해야 할까냥? 왜 일을 하느냥? 앞으로 무엇을 더 할까냥?”
라이캣은 온갖 생각이 정리되지 않은 채 캣네생선
가게를 돌아다니며 묵묵히 청소했습니다.
생선가게에는 골드바와 물고기들이 널브러져 있었습니다. 아무 생각 없이 청소할수록 몸은 힘들지만, 머릿속은 정리가 되어갔습니다.
생각은 흘러가는 대로 두고, 단순한 일에 집중하니 머릿속에는 중요한 것만 남고, 문제는 어느새 단순화되었습니다.
2.1 임무
다음과 같은 딕셔너리를 생성하고 골드바의 개수가 몇 개인지, 물고기의 개수가 몇 개인지 터미널에 출력하는 코드를 작성해주세요.
기본 코드
d = {'골드바': 0, '물고기': 0}
d = {'골드바': 0, '물고기': 0}
2.2. 사용 코드
아래 코드들을 조합하여 문제를 풀어주세요.
d['골드바'] = d['골드바'] + 1
move()
turn_left()
repeat(2, move)
pick()
print('hello world!')
front_is_clear()
left_is_clear()
right_is_clear()
d['골드바'] = d['골드바'] + 1
move()
turn_left()
repeat(2, move)
pick()
print('hello world!')
front_is_clear()
left_is_clear()
right_is_clear()
3. 문제 풀이를 위한 개념
3.1 딕셔너리 get
딕셔너리에는 get이라는 메서드가 있습니다. 메서드 목록은 dir을 통해 출력할 수 있습니다. 우리는 딕셔너리에 get을 통해 우리는 좀 더 안전하게 아이템을 추출할 수 있습니다. 예를 들어 보도록 하겠습니다.
d = {'one': 1, 'two': 2}
d['three']
d = {'one': 1, 'two': 2}
d['three']
위의 코드에서 딕셔너리 d에 three가 없기 때문에 KeyError: 'three'
에러를 출력하게 됩니다. 이렇게 키가 없을 때 에러를 출력하지 않고, 설정한 값이 출력되게 하는 것이 get입니다.
d = {'one': 1, 'two': 2}
d.get('three', '값 없음')
d = {'one': 1, 'two': 2}
d.get('three', '값 없음')
위와 같이 출력하면 ‘값 없음’을 출력하게 됩니다. 만약 ‘값 없음’이 아니라 0을 출력하게 하고 싶었다면 아래와 같이 코드를 수정하면 됩니다.
d = {'one': 1, 'two': 2}
d.get('three', 0)
d = {'one': 1, 'two': 2}
d.get('three', 0)