8.자료구조 8.4 사전

C급 개발자와 함께하는 파이썬

8.4 사전


지금은 많이 사용하지 않지만 과거에는 많이 사용하던 물건이다. 위키에서 정의를 찾아보니

사전(辭典, dictionary)은 낱말의 뜻을 서술하는 것 내지는 도표와 함께 모아 놓은 것, 또는 어떤 낱말과 대응하는 다른 나라말의 낱말을 가나다 순서대로 배열한 것이다. 많은 사전들은 발음기호도 포함하고 있으며 응용, 역사, 어원, 그림, 사용법, 예문을 서술하고 있다. 예전에는 종이로된 문서 형식의 사전을 많이 사용했으나 인터넷을 많이 사용한다.”


[출처 : 위키백과]

위와같이 사전은 키값에 대한 정보를 가져오는 역할을 하고 있습니다. 국어사전이라면 국어에서 우리가 필요한 용어를 모아놓아 찾아보기 쉽게 만든것이고 영어사전은 영어에서 필요한 용어를 모아놓은 것입니다.


사전의 키는 정적 객체여야 하지만, 값으로는 정적 객체나 비정적 객체 모두 사용이 가능합니다. 이것을 간단하게 다시 말하면 사전의 키로는 단순 객체만 사용할수 있습니다. 또한 사전의 키는 유일한 값이어야 합니다. 그래야 키 값을 가지고 찾을수 있을 것입니다.


사전을 정의하는 방법은 key : value와 같은 방법으로 정의합니다. 이때 키와 값은 콜론( : )으로 구분하며 각 키:값 쌍은 쉼표로 구분하고 이 모든것을 중괄호”{}”로 묶어 주어야 합니다.


사전형에서 키 : 값 쌍은 자동으로 정렬되지 않습니다. 이를 위해서는 사용하기 전에 먼저 직접 정렬해 주어야 합니다.


예제로 확인해보겠습니다.




코드를 확인해보겠습니다.

mail_list = { “gildong” : “gildong@testmail.com”,

              “sunsin” : “sunsin@testmail.com”,

              “me” : “admin@testmail.com” }

메일주소를 가지는 사전을 하나 정의하였습니다. 총 세명의 메일을 정리하였습니다. 위에 나온대로 키 : 값은 콜론( : )으로 나누고 각각의 값은 콤마( , ) 로 구분하였습니다.


print( type(mail_list) )

mail_list의 타입을 출력해보니 사전(dict)라고 출력되는것을 확인할수 있습니다.


print( “메일 갯수는 {}개 입니다.”.format(len(mail_list)))

총세개의 메일주소를 정리했으니 메일 갯수는 3개로 출력될 것입니다.


print( “홍길동의 메일주소는 {} 입니다.”, mail_list[‘gildong’])

gildong이라는 키값을 가지는 홍길동의 메일을 가져와서 출력할 것입니다.


print( “me의 메일주소를 삭제합니다. “)

del( mail_list[ “me” ] )

print( “메일 갯수는 {}개 입니다.”.format(len(mail_list)))

me의 메일을 삭제해 보았습니다. 삭제후 메일 갯수를 출력해보니 2개가 출력되는군요. 삭제가 잘 된것을 확인할수 있습니다.


8.4.1 키워드 인수와 사전의 관계

함수를 호출할 때 키워드 인수를 사용해 보셨다면, 이미 사전을 사용해 보신 것입니다. 여기서 여러분이 지정해준 키 : 값 쌍은 각각 함수를 정의할 때 지정하는 매개 변수들의 이름과 각 매개 변수에 넘겨줄 값에 대응하는 하나의 사전에 접근하는 것입니다. 이것을 “심볼 테이블”이라고 부릅니다.


댓글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.