[Python]딕셔너리(Dict)
파이썬의 기본 자료구조 딕셔너리에 대해 알아보자
범용적으로 가장 많이 쓰이는 자료구조로, 자바의 Map에 해당한다. Json과 형태가 동일하다.
# Dictionary (딕셔너리) # 범용적으로 가장 많이 사용 # 순서없음(최신 버전에서는 순서 유지 가능), 키 중복 불가, 수정가능, 삭제가능 # 선언 a = {'name': 'jigi', 'phone': '02-123-1234', 'birth': '821220'} # key = value 쌍으로 이뤄짐 b = {1: 'jigi'} c = {'arr': [1, 2, 3, 4]} d = { 'name': 'jigi', 'city': 'seoul', 'age': 20, 'grade': 'S', 'status': True } # 사용하기 번거로워서 잘 안쓰임 e = dict([ ('name', 'jigi'), ('city', 'seoul'), ('age', 20), ('grade', 'S'), ('status', True) ]) f = dict( name='jigi', city='seoul', age=20, grade='S', status=True ) # 출력 print(type(a), type(b), type(c), type(d), type(e), type(f)) print(a) print(b) print(c) print(d) print(e) print(f) print(id(d), id(e), id(f)) # 서로다른 값이 출력 print() # 출력 print('') print("a = ", a['name']) # a['name1'] 으로 접근 시 속성이 없다는 KeyError이 발생함 print("a = ", a.get('name')) # a['name'] 처럼 속성명으로 접근하는 방식보다 더 자주 사용됨, a.get('name1') 처럼 존재하지 않는 key로 접근시 None 반환됨 print("b = ", b[1]) print("c = ", c.get('arr')) print("f = ", f.get('age')) # 딕셔너리 추가 a['address'] = '서울특별시 강동구' print("a = ", a) a['address'] = '서울특별시 강동구 천호동' print("a = ", a) # 딕셔너리 길이 (key 개수) print("a = ", len(a)) print("b = ", len(b)) print("c = ", len(c)) print("d = ", len(d)) print() # dict_keys, dict_values, dict_itmes : 반복문(__iter__)에서 사용가능 print("a = ", a.keys()) print("b = ", b.keys()) print("c = ", c.keys()) print("d = ", d.keys()) print("a = ", list(a.keys())) # list로 형변환 print("b = ", list(b.keys())) print() print("a = ", a.values()) print("b = ", b.values()) print("c = ", c.values()) print("d = ", d.values()) print("a = ", list(a.values())) # list로 형변환 print("b = ", list(b.values())) print() print("a = ", a.items()) print("b = ", b.items()) print("c = ", c.items()) print("d = ", d.items()) print("a = ", list(a.items())) # list로 형변환 print("b = ", list(b.items())) print() print("a = ", a.pop('name')) print("a = ", a) print("c = ", c.pop('arr')) print("c = ", c) print() print("f = ", f) print("f = ", f.popitem()) print("f = ", f) print("f = ", f.popitem()) print("f = ", f) print("f = ", f.popitem()) # 더이상 꺼내올 수 없을 경우 에러가 발생 print("f = ", f) print() print("a = ", a) print("a = ", 'birth' in a) print("c = ", d) print("c = ", 'birth' in c) print() # 수정 print("a = ", a) a['add'] = 'Add date' print("a = ", a) a.update(birth='820910') print("a = ", a) temp = {'address': "충남 금산군"} a.update(temp) print("a = ", a)
결과:
<class 'dict'> <class 'dict'> <class 'dict'> <class 'dict'> <class 'dict'> <class 'dict'> {'name': 'jigi', 'phone': '02-123-1234', 'birth': '821220'} {1: 'jigi'} {'arr': [1, 2, 3, 4]} {'name': 'jigi', 'city': 'seoul', 'age': 20, 'grade': 'S', 'status': True} {'name': 'jigi', 'city': 'seoul', 'age': 20, 'grade': 'S', 'status': True} {'name': 'jigi', 'city': 'seoul', 'age': 20, 'grade': 'S', 'status': True} 2105002630016 2105006060992 2105006060928 a = jigi a = jigi b = jigi c = [1, 2, 3, 4] f = 20 a = {'name': 'jigi', 'phone': '02-123-1234', 'birth': '821220', 'address': '서울특별시 강동구'} a = {'name': 'jigi', 'phone': '02-123-1234', 'birth': '821220', 'address': '서울특별시 강동구 천호동'} a = 4 b = 1 c = 1 d = 5 a = dict_keys(['name', 'phone', 'birth', 'address']) b = dict_keys([1]) c = dict_keys(['arr']) d = dict_keys(['name', 'city', 'age', 'grade', 'status']) a = ['name', 'phone', 'birth', 'address'] b = [1] a = dict_values(['jigi', '02-123-1234', '821220', '서울특별시 강동구 천호동']) b = dict_values(['jigi']) c = dict_values([[1, 2, 3, 4]]) d = dict_values(['jigi', 'seoul', 20, 'S', True]) a = ['jigi', '02-123-1234', '821220', '서울특별시 강동구 천호동'] b = ['jigi'] a = dict_items([('name', 'jigi'), ('phone', '02-123-1234'), ('birth', '821220'), ('address', '서울특별시 강동구 천호동')]) b = dict_items([(1, 'jigi')]) c = dict_items([('arr', [1, 2, 3, 4])]) d = dict_items([('name', 'jigi'), ('city', 'seoul'), ('age', 20), ('grade', 'S'), ('status', True)]) a = [('name', 'jigi'), ('phone', '02-123-1234'), ('birth', '821220'), ('address', '서울특별시 강동구 천호동')] b = [(1, 'jigi')] a = jigi a = {'phone': '02-123-1234', 'birth': '821220', 'address': '서울특별시 강동구 천호동'} c = [1, 2, 3, 4] c = {} f = {'name': 'jigi', 'city': 'seoul', 'age': 20, 'grade': 'S', 'status': True} f = ('status', True) f = {'name': 'jigi', 'city': 'seoul', 'age': 20, 'grade': 'S'} f = ('grade', 'S') f = {'name': 'jigi', 'city': 'seoul', 'age': 20} f = ('age', 20) f = {'name': 'jigi', 'city': 'seoul'} a = {'phone': '02-123-1234', 'birth': '821220', 'address': '서울특별시 강동구 천호동'} a = True c = {'name': 'jigi', 'city': 'seoul', 'age': 20, 'grade': 'S', 'status': True} c = False a = {'phone': '02-123-1234', 'birth': '821220', 'address': '서울특별시 강동구 천호동'} a = {'phone': '02-123-1234', 'birth': '821220', 'address': '서울특별시 강동구 천호동', 'add': 'Add date'} a = {'phone': '02-123-1234', 'birth': '820910', 'address': '서울특별시 강동구 천호동', 'add': 'Add date'} a = {'phone': '02-123-1234', 'birth': '820910', 'address': '충남 금산군', 'add': 'Add date'}
최신 댓글