python/python 기초

7. Python 데이터 타입 4 - dict(딕셔너리)

Memory! 2022. 4. 15. 00:15
728x90
반응형
  • Numeric Types: int(정수), float(소수), complex(복소수)
  • Sequence Types: str(문자열), list(리스트), tuple(튜플)
  • Mapping Type: dict(딕셔너리)
  • Set Types: set(집합)
  • Boolean Type: bool(불리언)
  • Binary Types: bytes, bytearray, memoryview

- 딕셔너리 타입은 key, value로 이루어진 데이터 셋입니다. (순서는 없습니다.)
- 여기서 key는 변경이 불가능하고 value는 변경이 가능합니다.
- key는 중복 불가능 (같은 key의 value를 덮어 씀), value는 중복 가능
- value는 어떤 객체든 사용 가능 : int, str, list, dict 무엇이든 가능합니다.

1. dict 만들기
- dict는 중괄호 {} 로 이루어진 데이터 셋입니다.

>>> {"key1": "value1", "key2": "value2"}
{'key1': 'value1', 'key2': 'value2'}

- dict의 key는 변경 불가능 하기 때문에 변경 불가능한 다른 객체를 사용 가능합니다.
ex) 튜플

# 튜플을 key로 사용하여 생성 가능
>>> {("a", "b") : "value1"}
{('a', 'b'): 'value1'}

- dict의 키를 변경 가능한 객체로 사용하면 에러가 납니다.
ex) set, list

# list를 사용한 dict 생성 : 에러 발생
>>> {["list1"] : "value1"}
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'

2. dict 데이터 접근하기
- key를 이용해서 접근 가능

>>> a = {"key1" : 1, "key2" : "value2"}
>>> a["key1"]
1

- key가 없는 경우 에러가 납니다.
- get(key)를 사용하면 key가 없더라도 에러가 안납니다.

# 없는 key로 접근하는 경우
>>> a = {"key1" : 1, "key2" : "value2"}
>>> a['key3']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'key3'

# get(key) 함수를 통해서 접근하기 
>>> a.get('key2')
'value2'

# get으로 없는 key에 접근
>>> a.get('key3')
---- 아무 출력 없음

3. 데이터 변경, 삭제
- 인덱스 접근에 대입(=) 을 통해서 쉽게 데이터 변경이 가능합니다.
- del 명령어를 통해서 해당 key의 데이터 삭제가 가능합니다.

# 데이터 변경하기
>>> a
{'key1': 1, 'key2': 'value2'}
>>> a['key1'] = 1001
>>> a
{'key1': 1001, 'key2': 'value2'}

# 데이터 삭제 하기 () 사용
>>> del(a['key1'])
>>> a
{'key2': 'value2'}

# 데이터 추가 후 del로 삭제하기 () 미사용
>>> a['key1'] = 1001
>>> a
{'key2': 'value2', 'key1': 1001}
>>> del a['key2']
>>> a
{'key1': 1001}

 

728x90
반응형