Notice
Recent Posts
Recent Comments
Link
just inside
[python] 딕셔너리 자료형 본문
728x90
자주 사용하지만 헷갈리는 딕셔너리 자료형을 짚고 넘어가기 위해 정리해보자.
딕셔너리
- 딕셔너리는 {} 사용하여 딕셔너리 내의 요소를 저장
- 사전과 같이 {키:값}으로 데이터가 저장
- 키는 임의의 자료형을 사용할 수 있으나 중복 불가
- 순서 없음
기본 구성
dic = {'name':'pey', 'phone':'010-1234-5678', 'birth':'1188'}
딕셔너리 쌍 추가, 삭제
추가하기
>>> a = {1:'a'}
>>> a[2] = 'b'
>>> a
{1: 'a', 2: 'b'}
# key = 'name', value = 'pey' 인 딕셔너리 쌍 추가
>>> a['name'] = 'pey'
>>> a
{1: 'a', 2: 'b', 'name': 'pey'}
수정하기
>>> a['name'] = 'anny'
>>> a
{1: 'a', 2: 'b', 'name': 'anny'}
삭제하기 : del
>>> del a[1]
>>> a
{2: 'b', 'name': 'anny', 3: [1, 2, 3]}
딕셔너리를 사용하는 방법
Key 사용해 Value 얻기
>>> grade = {'pey' :10, 'julliet' :99}
>>> grade['pey']
10
>>> grade['julliet']
99
주의할 사항
- 딕셔너리에서 key는 고유한 값
- 중복되는 key 값을 사용하면 하나를 제외한 나머지 것들이 모두 무시
- key에 리스트는 쓸 수 없음
>>> a = {1:'a', 1:'b'}
>>> a
{1: 'b'}
>>> a = {[1,2] : 'hi'}
Traceback (most recent call last):
File "<stdin>", line 1, in <modeul>
TypeError: unhashable type: 'list'
딕셔너리 관련 함수
a.keys() : key 리턴
a.values() : value 리턴
a.items() : key-value 튜플 리턴
a.clear() : 모두 삭제
a.get(key) : key로 value 얻기. 키 없으면 None 리턴
'key' in dict : key가 dict에 있는지 확인
Key 리스트 만들기 : keys
- a.keys() 는 딕셔너리 a의 key 만을 모아 dict_keys 객체 리턴
- dict_keys 객체는 리스트와 비슷하게 사용할 수 있지만, 리스트 고유의 함수(append, insert, pop, remove, sort) 사용 불가
>>> a = {'name': 'pey', 'phone': '010-9999-1234', 'birth': '1118'}
>>> a.keys()
dict_keys(['name', 'phone', 'birth'])
Value 리스트 만들기 : values
- a.values() 는 딕셔너리 a의 value 만을 모아 dict_values 객체 리턴
>>> a.values()
dict_values(['pey', '010-9999-1234', '1118'])
Key, Value 쌍 얻기 : items
- key와 value의 쌍을 튜플로 묶은 값인 dict_items 객체 리턴
>>> a.items()
dict_items([('name', 'pey'), ('phone', '010-9999-1234'), ('birth', '1118')])
Key:Value 쌍 모두 지우기 : clear
- 딕셔너리 안의 모든 요소 삭제 : a.clear()
>>> a.clear()
>>> a
{}
Key로 Value 얻기 : get
- get(x) 함수는 x라는 key에 대응되는 value 리턴
>>> a = {'name': 'pey', 'phone': '010-9999-1234', 'birth': '1118'}
>>> a.get('name')
'pey'
>>> a.get('phone')
'010-9999-1234'
- 딕셔너리에 존재하지 않는 키로 값을 가져오려 하는 경우
- a['nokey'] : 오류 발생
- a.get('nokey') : None 리턴
>>> a = {'name':'pey', 'phone':'010-9999-1234', 'birth': '1118'}
>>> print(a.get('nokey'))
None
>>> print(a['nokey’])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'nokey'
- key 없는 경우 디폴트 값 지정 가능
>>> a.get('nokey', 'foo')
'foo'
해당 Key가 딕셔너리 안에 있는지 조사하기 : in
>>> a = {'name':'pey', 'phone':'010-9999-1234', 'birth': '1118'}
>>> 'name' in a
True
>>> 'email' in a
False
728x90
'LG U+ Why Not SW camp > python' 카테고리의 다른 글
[python] set (집합) 자료형 (0) | 2024.08.01 |
---|---|
[python] 문자열 함수 정리 (0) | 2024.07.17 |
[python] 파일 읽고 쓰기 (0) | 2024.07.12 |
[python] 문자열 포매팅 (0) | 2024.07.09 |