사전은 이를테면 전화번호부 같은 것인데, 누군가의 이름을 찾으면 그 사람의 연락처를 알수잇는 것과 같다.
이때 그 정보에 접근하고자 사용한 이름에 해당하는 것을 키라고 부르고 ,
키를 통해 얻어낸 정보 연락처 등에 해당하는 것을 값이라고 부른다.
전화번호부에 동명이인이 잇을경우 어떤 정보가 맞는 정보인지 제대로 알아낼 수 없듯 ,
딕셔너리의 키는 유일한 값을 가져야한다.
딕셔너리의 키는 정적 객체(문자열 등등) 이어야 하지만 , 값으로는 정적 객체나 비정적 객체 모두 사용할 수 있다.
이것을 간단하게 다시 말하면 사전의 키로는 단순 객체만 사용할수 있다고 표현한다.
사전을 정의할 때 키와 값의 쌍은 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 |