본문 바로가기

Programming/Python Tutorials

[PYTHON 3] Tutorials 19. Dictionary

안녕하세요. 이번 시간에는 파이썬에서 다루는 'Dictionary'에 대해 알아보고자 합니다. 딕션너리: 사전. 을 뜻하죠. 쉽게 이해하고 있듯이, 사전을 찾으면 단어:뜻 이렇게 이루어져 있습니다. 이 개념과 동일합니다. 어떤 단어를 찾았는데 그 안에 가지고 있는 의미, 뜻, 내용물이 뭔지 알려주게끔 이루어진 규칙을 말합니다. 이를 프로그래밍에서는 Key, Value 라고 각각 칭합니다. 단어: Key, 뜻: Value 라고 이해하시면 됩니다. 자 그럼 예제를 통해 자세히 알아보겠습니다.


친구라는 변수 안에 친구 이름과 특징을 딕셔너리({})로 넣어 두었습니다. 딕셔너리는 Curly Bracket {} 안에 세미콜론(:) 왼쪽에는 key 값을 오른쪽에는 value 값을 넣어주는게 원칙입니다. 위 코드에서는 각각의 이름 'Tony', 'Lucy', 'Eric' 이 key 값에 해당합니다. 그러면 당연히 'chubby', 'pretty', 'smart' 는 value값이 됩니다. 

단순히 friends를 출력해주면 어떻게 될까요? 예상을 먼저 해보시고 다음 그림을 보세요.

위의 그림처럼 friends 안의 모든 값이 나와버립니다. 특정값을 찾아야 한다면 이렇게 하면 안되겠죠.

friends 변수안의 key 값을 찾을 때는 Square Bracket [] 을 사용합니다. 위 코드처럼 friends['Tony'] 라고 명기하면 Friends 안에 'Tony'라는 key 에 상응하는 Value 값을 내놓아라~ 라는 의미입니다. 다른 이름도 위의 코드처럼 넣으면 value 값을 출력할 것입니다.

네. 위 코드의 결과값입니다. 제대로 나오고 있네요. 그러나 우리가 프로그래밍을 하는 이유과 효율적이고 생산적인 것을 추구함으로 위의 코드는 비효율,비생산적입니다. 만약 key값이 수천, 수만일 경우에도 위처럼 하나하나 써 넣을까요? 완전 노가다(?)가 되겠죠? 그럼 어떻게 하면 좋을까요? 예전에 다룬 반복문을 사용하면 됩니다.

for 반복문을 썼습니다. 그런데 생소한 부분이 보이죠? friends는 key,value 를 가지고 있으므로 각각을 item 이라고 할수 있습니다. 그래서 각각을 하나의 값으로 나타내 주기 위해 items() 라고 하는 메소드(일명 함수라고도 할 수 있습니다)를 써 줍니다. 그러면 각각을 Key 를 k(임의로 정함), Value 를 v(역시 임의의 값임) 정하고 반복문을 돌리겠다는 의미가 됩니다.

이제 출력을 해볼까요? 프린트를 써서 출력을 하게 하겠습니다.

어랏.. 그런데 이름과 특징이 붙어서 출력이 되어 버렸군요. 뭐.. 사소하지만 보기좋게 바꾸어 보겠습니다.

k, v 사이에 's 를 넣고 공백을 한칸 넣은후 실행을 시켜봤습니다. 깔끔(^^;) 하게 잘 나오는 군요. 기본적인 개념은 숙지하셨으리라 믿습니다. 여기까지 Dictionary 에 대해 알아보았습니다. 수고하셨습니다.