본문 바로가기

Python

04_딕셔너리

04_딕셔너리


딕셔너리- 고유한 키를 지정한다.

- 키 값은 대부분 문자열이지만, 불변하는 파이썬의 어떤 타입(부울, 정수, 부동소수점수, 튜플 등등)이 될 수 있다.


딕셔너리 생성하기 : {}

- 딕셔너리를 생성하기 위해서는 중괄호 안에 키:값 쌍을 지정한다.

- 빈 딕셔너리 만들기

1
empty_dict = {}
cs


딕셔너리로 변환하기 : dict()

- 두 값으로 이루어진 시퀀스를 딕셔너리로 변환할 수 있다.

- 각 시퀀스의 첫번째 항목은 키, 두번째 항목은 값으로 사용된다.

1
2
test = [ ['a''b'], ['c''d'], ['e''f'] ]
print(dict(test))
cs



항목 추가/변경하기 : key

- 딕셔너리에 항복을 추가할 때는 키에 의해 참조되는 항목에 값을 할당하면 된다. 만약에 키가 존재한다면 그 값은 새 값으로 대체되고, 키가 존재하지 않으면 새 값이 키와 딕셔너리에 추가된다.

- 딕셔너리 키들은 반드시 유일해야한다.

1
2
test = { 'one' : '1''three' : '3''four' : '4''five' : '5', }
print(test)
cs


- two 가 빠져있는 관계로 추가를 해준다.

1
2
test['two'= '2'
print(test)
cs




딕셔너리 결합하기 : update()

- update() 함수는 한 딕셔너리의 키와 값들을 복사해서 다른 딕셔너리에 붙여준다.
- 두 딕셔너리에 같은 키값이 존재한다면, 덮어씌운 키 값으로 변경된다.

1
2
3
4
5
test = { 'one' : '1''two' : '2''three' : '4' }
others = { 'three' : '3''four' : '4''five' : '5' }
 
test.update(others)
print(test)
cs



키와 del로 항목 삭제하기

- del 키워드와 함께 key를 이용하면 삭제가 가능하다.

1
2
3
test = { 'one' : '1''two' : '2' }
del test['two']
print(test)
cs





모든 항목 삭제하기 : clear()

- 딕셔너리에 있는 키와 값을 모두 삭제하기 위해서는 clear()를 사용하거나 빈 딕셔너리 {}를 할당하면 된다.

1
2
3
4
5
6
7
8
test = { 'one' : '1''two' : '2''three' : '3' }
print(test)
test.clear()
print(test)
 
test = { 'one' : '1''two' : '2''three' : '3' }
test = {}
print(test)
cs




in으로 키 멤버십 테스트

- 딕셔너리에 키가 존재하는지 알고 싶다면 in을 사용한다.

1
2
test = { 'one' : '1''two' = '2''three' = '3' }
print('three' in test)

cs











항목 얻기 : key

- 기존 딕셔너리의 값을 알기 위해서는 그냥 키값을 이용해 값을 얻어왔다. 하지만 그렇게 얻을 경우 예외 사항(없을 경우)이 발생할 수 있다. 따라서, in을 통해 존재하는지 확인하고 얻어오는 방법도 있고, get()을 통해 얻어올 수도 있다.

1
2
test = { 'one' : '1''two' : '2''three' : '3' }
print(test.get('one'))
cs




- 만약 키가 존재하지 않으면, 옵션 값을 지정해서 출력할 수 있다.

1
2
test = { 'one' : '1''two' : '2''three' : '3' }
print(test.get('four''Not a Exist!'))
cs


모든 키 얻기: keys()

- 딕셔너리의 모든 키를 가져오기 위해서는 keys()를 사용한다.

1
2
test = { 'one' : '1''two' : '2''three' : '3' }
print(test.keys())
cs




모든 값 얻기 : values()

- 딕셔너리의 모든 값을 가져오기 위해서는 values()를 사용한다.

1
2
test = { 'one' : '1''two' : '2''three' : '3' }
print(list(test.values()))
cs




모든 쌍의 키-값 얻기 : items()
- 딕셔너리의 모든 쌍의 키와 값을 얻기 위해서는 items()를 사용한다.
- 각 키와 값은 튜플로 반환된다.
1
2
test = { 'one' : '1''two' : '2''three' : '3' }
print(list(test.items()))
cs




할당 : =, 복사 : copy()

- 리스트와 마찬가지로 딕셔너리를 할당한 후 변경할 때 딕셔너리를 참조하는 모든 이름에 변경된 딕셔너리를 반영한다.

1
2
3
4
test = { 'one' : '1''two' : '2''three' : '3' }
save_test = test
test['four'= '4'
print(save_test)
cs




그러므로 딕셔너리의 키와 값을 또 다른 딕셔너리로 복사하기 위해서는 위와 같이 할당하지 않고 copy() 사용한다.

1
2
3
4
test = { 'one' : '1''two' : '2''three' : '3' }
original_test = test.copy()
test['four'= '4'
print(original_test)
cs




- 기존 데이터를 original에 복사 해놓고, 딕셔너리를 변경해도 복사된 딕셔너리는 영향을 받지 않는다.



'Python' 카테고리의 다른 글

05_셋  (0) 2018.01.28
03_튜플  (0) 2017.12.30
02_리스트  (0) 2017.12.17
01_파이 재료 : 숫자, 문자열, 변수  (0) 2017.12.10
00_Python 시작하기(설치)  (0) 2017.11.15