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