dict란 dictionary에 줄임말입니다. dictionary는 하나의 자료구조입니다. dictionary 뜻 그대로 사전이란 의미를 갖습니다.
1. dict은 자료구조이다.
2. 하나의 요소에 2개의 원소를 갖는다.(키(key), 값(value))
3. dict는 인덱싱(indexing)이 가능하지만 슬라이싱(slicing)은 불가능하다.
4. len() 함수를 사용할 경우 한 쌍을 1로 카운트한다.
5. 키(key)는 중복이 불가능하다.
6. 값(value)은 중복이 가능하다.
7. 키(key)를 인덱스(index)처럼 사용할 수 있다.
dict 명 = {키(key): 값(value), 키(key): 값(value),...}
dict 기본 사용 방법은 중괄호({})를 사용하고 중괄호 안에 콜론(:)을 사용해 앞에는 키(key) 뒤에는 값(value)을 작성하면 됩니다.
food = {'김밥': 3000, '돈가스': 6500, '김치찌개':5 000} # dict를 생성
food['라면'] = 4000 # 맨 마지막 위치에 키 = '라면', 값 = 4000을 추가
print(food) # 출력 값: {'김밥': 3000, '돈가스': 6500, '김치찌개': 5000, '라면': 4000}
food = {'김밥': 3000, '돈가스': 6500, '김치찌개': 5000} # dict를 생성
food['김밥'] = 4000 # 김밥에 가격을 4000으로 수정
print(food) # 출력 값: {'김밥': 4000, '돈가스': 6500, '김치찌개': 5000}
값을 추가할 때와 값을 수정할 때에 사용 방법은 동일합니다. 하지만 두 개의 차이점은 키(kye)가 없다면 dict 맨 마지막 위치에 키(key)와 값(value)이 추가되고 키(key)가 있다면 그 키(key)에 값(value)이 수정됩니다.
# pop을 사용했을 때
food = {'김밥': 3000, '돈가스': 6500, '김치찌개': 5000}
val = food.pop('김밥') # pop를 사용해 food에 값(value)을 삭제하고 반환한 값을 keys에 대입한다.
print(val) # 출력 값: 3000
print(food) # 출력 값: {'돈가스': 6500, '김치찌개': 5000}
# del를 사용했을 때
food = {'김밥': 3000, '돈가스': 6500, '김치찌개': 5000}
del food['김밥']
print(food) # 출력 값: {'돈가스': 6500, '김치찌개': 5000}
pop과 del는 삭제하는 기능입니다. 두 개의 차이점은 pop은 반환 값이 있고(pop에 반환 값은 키(key)에 연관된 값(value)입니다.)
del은 반환 값이 없습니다. 또한 pop은 dict명.pop()중괄호를 사용하고 del는 del dict명[]대괄호를 사용합니다. 모두 소괄호(), 대괄호[] 안에는 키(key)를 줘야합니다.
* del는 pop보다 수행 속도가 빠릅니다.
food = {'김밥': 3000, '돈가스': 6500, '김치찌개': 5000}
keys = food.keys() # 키(key) 전체 추출
vals = food.values() # 값(value) 전체 추출
print(keys) # 출력 값: dict_keys(['김밥', '돈가스', '김치찌개'])
print(vals) # 출력 값: dict_values([3000, 6500, 5000])
키(key)와 값(value) 전체 출력하는 방법은 키(key)일 경우 dict명.keys(), 값(value)일 경우 dict명.values()를 사용하면 됩니다.
키(key): list명 = list(dict명.keys()) or list명 = list(dict명)
값(value): list명 = list(dict명.values())
키(key)와 값(value)를 list로 변환하고 출력할 수 있습니다.
food = {'김밥': 3000, '돈가스': 6500, '김치찌개': 5000}
list_keys = list(food.keys()) # 혹은 list_keys = list(food) 키(key) 추출
list_vals = list(food.values()) # 값(value) 추출
print(list_keys) # 출력 값: ['김밥', '돈가스', '김치찌개']
print(list_vals) # 출력 값: [3000, 6500, 5000]
print(type(list_keys)) # 출력 값: <class 'list'>
print(type(list_vals)) # 출력 값: <class 'list'>
food = {'김밥': 3000, '돈가스': 6500, '김치찌개': 5000}
print(food.len()) # 출력 값: 3
len 함수를 사용해서 dict에 길이를 출력하면 dict는 키(key)와 값(value)을 한쌍으로 묶어 출력합니다. 그렇기 때문에 food에 길이는 3을 출력합니다.
이상으로 파이썬에 dict를 알아봤습니다. 잘 못된 부분이나 부족한 부분 있으면 피드백 주시면 감사하겠습니다!!!