사전


 앞에서 공부할때 이미 여러번 사용했던 사전은, 리스트나 튜플만큼 많이 사용하는 자료구조입니다. 사전에 대해 자세히 알아보겠습니다. 사전은 키를 이용하여 값을 저장하는 구조로, 순서를 정하지 않는 매핑형 자료구조 입니다.

- 사전의 특징과 활용

----------------------------------------------------------------------------------------

1. 키(key)와 값(value)

- 키는 변경 불가능한 자료만 사용 가능 -> 리스트와 사전은 사용 불가

- 값은 변경 가능한 자료도 사용이 가능하며, 키와 값을 묶어서 아이템(item)이라고 부르며 콤마(,) 단위로 구분

- 아이템의 수 : 사전 원소 개수

2. 사전의 새로운 원소 추가/변경 및 삭제

- 추가 : 사전이름['추가할 키 이름']=값

- 변경 : 사전이름['변경할 키 이름']=값

- 삭제 : del 사전이름[키]

# 내장함수

3. dict() 내장 함수를 이용한 사전생성

- dict() : 비어있는 사전 생성

- dict(키1=값1, 키2=값2)

4. zip() 내장 함수 : 두 개의 자료를 순서대로 쌍으로 묶은 튜플들의 리스트를 반환

----------------------------------------------------------------------------------------


- 사전 메소드

----------------------------------------------------------------------------------------

1. D.keys() : 키들을 리스트로 반환
2. D.values() : 값들을 리스트로 반환
3. D.items() : 각 아이템을 튜플형태로 가져와 리스트로 반환
4. D.copy() : 사전을 복사(별도의 객체)
 이때, copy는 shallow copy로 정수나 리스트는 복사하지만, 리스트 원소를 가리키는 레퍼런스는 공유
5. D.get(키) : 키 값에 대한 값 검색, 키가 없다면 none반환
  사전이름[키] 형태로도 검색이 가능함(키가 없다면 에러발생)
6. D.pop(키) : 해당하는 아이템을 꺼냄
7. D.poptiem() : 임의의 아이템을 꺼냄
8. D.update(복사할 사전이름) : 복사할 사전의 아이템을 사전 D에 전부 넣어줌
9. D.clear() : 사전 전체의 내용을 지움
----------------------------------------------------------------------------------------

- 루프를 이용한 사전 내용 참조

 사전 내용 참조는 for in 문을 이용합니다. 

# 순차적으로 참조
----------------------------------------------------------------------------------------
dc=dict({'two':2,'three':3,'one':1})

for key in dc:
    print key,dc[key]
----------------------------------------------------------------------------------------
(실행 결과)
three 3
two 2
one 1

----------------------------------------------------------------------------------------


# 키, 값 동시 참조 - items()메소드 이용
----------------------------------------------------------------------------------------
dc=dict({'two':2,'three':3,'one':1})

for key,value in dc.items():
    print key,value
----------------------------------------------------------------------------------------
(실행 결과)
three 3
two 2
one 1
----------------------------------------------------------------------------------------

# 정렬 - sort()메소드 이용
----------------------------------------------------------------------------------------
dc=dict({'b':2,'c':3,'a':1})
    
items=dc.items()
print items

items.sort() # 정렬
print items

for k,v in items:
    print k,v
----------------------------------------------------------------------------------------
[('a', 1), ('c', 3), ('b', 2)]
[('a', 1), ('b', 2), ('c', 3)]
a 1
b 2
c 3
----------------------------------------------------------------------------------------

출처 한국기술교육대학교 온라인평생교육원 파이썬프로그래밍


'언어 > Python' 카테고리의 다른 글

[파이썬] 파일 다루기  (0) 2017.02.24
[파이썬] 파일 입·출력  (0) 2017.02.22
[파이썬] 튜플과 집합자료형  (0) 2017.02.14
[파이썬] 리스트 활용  (4) 2017.02.07
[파이썬] 리스트와 리스트 메소드  (0) 2017.02.05

+ Recent posts