제로베이스 자료구조(32~38)

ningbbang·2023년 4월 1일
0

Zerobase DS13

목록 보기
16/48

1. 딕셔너리(Dictionary)
키(Key)와 값(Value)을 이용해 자료를 관리
dic = {'key1':'item1', 'key2':'item2', 'key3':'item3',----}
key와 value에는 컨테이너 자료형도 올 수 있음
단, key값은 immutable값만 올 수 있음 ex) 상수, tuple 등

2. 딕셔너리 조회
1) key를 이용해 value 조회 가능

datas = {'k1':'i1','k2':'i2','k3':'i3','k4':'i4'}
print(datas)

print(datas['k1'])
print(datas['k2'])
print(datas['k3'])
print(datas['k4'])

#result
{'k1': 'i1', 'k2': 'i2', 'k3': 'i3', 'k4': 'i4'}
i1
i2
i3
i4

2) dic.get(key)을 이용해 조회 가능

datas = {'k1':'i1','k2':'i2','k3':'i3','k4':'i4'}
print(datas)

print(datas.get('k1'))
print(datas.get('k5'))

#result
{'k1': 'i1', 'k2': 'i2', 'k3': 'i3', 'k4': 'i4'}
i1
None

3. 딕셔너리 추가, 변경
dic[key] = item 형태로 추가 및 변경

datas = {'k1':'i1','k2':'i2','k3':'i3','k4':'i4'}
print(datas)

datas['k5']='i5'
datas['k1']='i1-1'

print(datas)

#result
{'k1': 'i1', 'k2': 'i2', 'k3': 'i3', 'k4': 'i4'}
{'k1': 'i1-1', 'k2': 'i2', 'k3': 'i3', 'k4': 'i4', 'k5': 'i5'}

4. keys()와 values()
1) dic.keys() : key값 반환, 리스트와 비슷한 dict_keys 타입
2) dic.values() : value값 반환, 리스트와 비슷한 dict_values 타입
3) dic.items() : key와 value가 튜플로 결합된 값으로 반환, 리스트와 비슷한 dict_items 타입

datas = {'k1':'i1','k2':'i2','k3':'i3','k4':'i4'}
print(datas)
print(datas.keys())
print(datas.values())
print(datas.items())

{'k1': 'i1', 'k2': 'i2', 'k3': 'i3', 'k4': 'i4'}
dict_keys(['k1', 'k2', 'k3', 'k4'])
dict_values(['i1', 'i2', 'i3', 'i4
dict_items([('k1', 'i1'), ('k2', 'i2'), ('k3', 'i3'), ('k4', 'i4')])

5. 딕셔너리 삭제
1) del dic[key] : 해당 키의 아이템 삭제

datas = {'k1':'i1','k2':'i2','k3':'i3','k4':'i4'}
print(datas)

del datas['k1']
print(datas)

#result
{'k1': 'i1', 'k2': 'i2', 'k3': 'i3', 'k4': 'i4'}
{'k2': 'i2', 'k3': 'i3', 'k4': 'i4'}

2) dic.pop(key) : 해당 키의 아이템 삭제하고 해당값을 반환

datas = {'k1':'i1','k2':'i2','k3':'i3','k4':'i4'}
print(datas)

rValue = datas.pop('k1')
print(datas)
print(rValue)

#value
{'k1': 'i1', 'k2': 'i2', 'k3': 'i3', 'k4': 'i4'}
{'k2': 'i2', 'k3': 'i3', 'k4': 'i4'}
i1

6. 딕셔너리 기타 기능
1) in, not in : 키(Key) 존재 유/무 판단

datas = {'k1':'i1','k2':'i2','k3':'i3','k4':'i4'}
print('datas : {}'.format(datas))

print('k1 in datas : {}'.format('k1' in datas))
print('k1 in datas : {}'.format('k1' not in datas))

#result
datas : {'k1': 'i1', 'k2': 'i2', 'k3': 'i3', 'k4': 'i4'}
k1 in datas : True
k1 in datas : False

2) len(dic) : 딕셔너리 길이(아이템 개수) 출력

3) dic.clear() : 딕셔너리 내의 모든 아이템 삭제

profile
HR Anaylist!

0개의 댓글