python - dictionary : 데이터 취업 스쿨 스터디 노트 11/16

slocat·2023년 11월 16일
0

start-data

목록 보기
14/75

딕셔너리 key: value

key는 유일한 값이어야 하고, 변경할 수 없어야 한다.
value는 중복 가능하다.

key를 이용하여 값 조회 : 키가 없으면 에러 발생 O

cat = {'name': 'ggomi', 'age': 3, 'hobby': ['catch', 'sleep']}

print(cat['name'])
print(cat['hobby'][0])
print(cat['address'])

>>>
ggomi
catch
❌KeyError: 'address'

get(key) 함수를 이용하여 값 조회 : 키가 없어도 에러 발생 X

print(cat.get('name'))
print(cat.get('hobby')[0])
print(cat.get('address'))

>>>
ggomi
catch
⭕None

아이템 추가

cat = {}

cat['name'] = 'ggomi'
cat['age'] = 2
cat['hobby'] = ['catch', 'sleep']

print(cat)

>>>
{'name': 'ggomi', 'age': 2, 'hobby': ['catch', 'sleep']}

이미 존재하는 키라면? 해당 키의 값이 수정된다.

(이어서...)
cat['age'] = 3

print(cat)

>>>
{'name': 'ggomi', 'age': 3, 'hobby': ['catch', 'sleep']}

keys(dic), values(dic), items(dic)

딕셔너리의 전체 key, value, item을 가져올 때 사용한다.

numbers = {1: 10, 2: 20, 3: 30, 4: 40, 5: 50}
ks = numbers.keys()
print(ks, type(ks))

vs = numbers.values()
print(vs, type(vs))

items = numbers.items()
print(items, type(items))

>>>
dict_keys([1, 2, 3, 4, 5]) <class 'dict_keys'>
dict_values([10, 20, 30, 40, 50]) <class 'dict_values'>
dict_items([(1, 10), (2, 20), (3, 30), (4, 40), (5, 50)]) <class 'dict_items'>

dict_keys, dict_values, dict_items를 리스트로 변환하여 사용한다.

# 리스트로 변환 후 for문을 이용하여 조회
numbers = {1: 10, 2: 20, 3: 30, 4: 40, 5: 50}

ks = numbers.keys()
ks = list(ks)

for idx, key in enumerate(ks):
  print(f'{idx}: {key}', end='  ')

>>>
0: 1  1: 2  2: 3  3: 4  4: 5
# for문을 이용하여 딕셔너리 조회하기
numbers = {1: 10, 2: 20, 3: 30, 4: 40, 5: 50}

for key in numbers.keys():
  print(f'{key}: {numbers[key]}')
  
>>>
1: 10
2: 20
3: 30
4: 40
5: 50

딕셔너리 삭제 : pop(key), del

numbers = {'1': 10, '2': 20, '3': 30, '4': 40, '5': 50}

# del
del numbers['1']
print(numbers)

# pop()
popNum = numbers.pop('2')
print('삭제된 데이터:', popNum)
print(numbers)

>>>
{'2': 20, '3': 30, '4': 40, '5': 50}
삭제된 데이터: 20
{'3': 30, '4': 40, '5': 50}

key 존재 유무 확인 : in, not in

numbers = {1: 10, 2: 20, 3: 30, 4: 40, 5: 50}

print(1 in numbers)			# True
print(1 not in numbers)		# False

모든 아이템 삭제 : dic.clear()

numbers = {1: 10, 2: 20, 3: 30, 4: 40, 5: 50}

numbers.clear()
print(numbers)

>>>
{}

🚗 오늘은 딕셔너리에 대해 배웠다.
이제 기본적인 파이썬 장비를 모두 장착했다. 업그레이드 해나가야지!

🚕 내일은 금요일이다. 자료구조 문제를 풀면서 한 번 더 개념을 정리해야겠다.

0개의 댓글