본문 바로가기

Programming/Python

사전

사전은 이를테면 전화번호부 같은 것인데, 누군가의 이름을 찾으면 그 사람의 연락처를 알수잇는 것과 같다.
        이때 그 정보에 접근하고자 사용한 이름에 해당하는 것을 라고 부르고 ,

   키를 통해 얻어낸 정보 연락처 등에 해당하는 것을 이라고 부른다.
전화번호부에 동명이인이 잇을경우 어떤 정보가 맞는 정보인지 제대로 알아낼 수 없듯 , 
딕셔너리의 키는 유일한 값을 가져야한다.


딕셔너리의 키는 정적 객체(문자열 등등) 이어야 하지만 , 값으로는 정적 객체나 비정적 객체 모두 사용할 수 있다.
이것을 간단하게 다시 말하면 사전의 키로는 단순 객체만 사용할수 있다고 표현한다.


사전을 정의할 때 키와 값의 쌍은 d = { key1 : value1 , key2 : value2 } 와 같이 지정해준다.
이떄 키와 값은 콜론으로 구분하며 각 키:값 쌍은 쉼표로 구분하고 이모든것을 중괄호 { } 로 묶어준다는걸 기억하자.

여기서 사전의 키:값 쌍은 자동으로 정렬되지 않는다 , 이를 위해서는 사용하기 전에 먼저 직접 정렬을 해주어야 한다.

앞으로 우리가 사용하게 될 사전은 dict 클래스의 객체다.


ab = {  'Swaroop' : 'swaroop@swaroopch.com' ,
'Larry' : 'larry@wail.org' ,
'Matsumoto': 'matz@ruby-lang.org' ,
'Spammer' : 'spammer@hotmail.com' }

print("Swaroop's email is",ab['Swaroop'])

del ab['Spammer']

print("\nThere are {} contacts in the email-book\n",format(len(ab)))

for name , email in ab.items():
print("Contact {} at {}".format(name,email))

ab['Guido']="guido@python.org"

if 'Guido' in ab:
print("\n Guido's emial is ",ab['Guido'])

결과값 :

Swaroop's email is swaroop@swaroopch.com


There are {} contacts in the email-book

 3

Contact Swaroop at swaroop@swaroopch.com

Contact Larry at larry@wail.org

Contact Matsumoto at matz@ruby-lang.org


 Guido's emial is  guido@python.org


먼저 설명한 표기법에 따라 딕셔너리 ab를 생성한다.    그러면 앞서 리스트와 튜플을 설명할 때 언급했던 인덱싱 연산자를 지정해주어
딕셔너리의 키-값 쌍에 접근이 가능하다.

키-값 쌍 또한 del()함수로 삭제가 가능하다.    del()함수에 인덱싱 연산자에 해당 키를 지정해 준 사전을 넘겨주기만 하면된다.

다음으로 , 딕셔너리의 items 메소드를 사용하여 각 키-값 쌍에 접근한다.
이 메소드는 키와 값으로 구성된 튜플들을 묶은 튜플 하나를 반환한다.
그 후 for..in문을 통해 각각의 변수 name 과 email에 반복하여 지정해 주게 하고 그 값을 출력한다.

위 예제의 'Guido'와 같이 인덱싱 연산자를 이용하여 새 키-값 쌍을 추가할 수도 있다.
또 , 딕셔너리 안에 키-값 쌍이 존재하는지 in 연산자를 통해 확인이 가능하다.

'Programming > Python' 카테고리의 다른 글

집합 그리고 참조  (0) 2017.11.11
열거형  (0) 2017.11.11
튜플  (0) 2017.11.11
파이썬의 자료 구조 , 리스트  (0) 2017.11.11
모듈  (0) 2017.11.11