[파이썬]dict(딕셔너리)

dict란?

dict란 dictionary에 줄임말입니다. dictionary는 하나의 자료구조입니다. dictionary 뜻 그대로 사전이란 의미를 갖습니다.

dict 특징

1. dict은 자료구조이다.
2. 하나의 요소에 2개의 원소를 갖는다.(키(key), 값(value))
3. dict는 인덱싱(indexing)이 가능하지만 슬라이싱(slicing)은 불가능하다.
4. len() 함수를 사용할 경우 한 쌍을 1로 카운트한다.
5. 키(key)는 중복이 불가능하다.
6. 값(value)은 중복이 가능하다.
7. 키(key)를 인덱스(index)처럼 사용할 수 있다.

dict 기본 사용 방법

dict= {(key):(value),(key):(value),...}

dict 기본 사용 방법은 중괄호({})를 사용하고 중괄호 안에 콜론(:)을 사용해 앞에는 키(key) 뒤에는 값(value)을 작성하면 됩니다.

dict 여러 가지 사용 방법

  1. 값을 추가(키 값이 없을 때): dict명[키] = 값 (dict명 뒤에 대괄호를 사용하는 이유는 인덱싱(indexing)을 사용하기 위해서입니다.)
food = {'김밥': 3000, '돈가스': 6500, '김치찌개':5 000}  # dict를 생성
food['라면'] = 4000  # 맨 마지막 위치에 키 = '라면', 값 = 4000을 추가
print(food)  # 출력 값: {'김밥': 3000, '돈가스': 6500, '김치찌개': 5000, '라면': 4000}
  1. 값을 수정(키 값이 있을 때): dict 명[키] = 값
food = {'김밥': 3000, '돈가스': 6500, '김치찌개': 5000}  # dict를 생성
food['김밥'] = 4000  # 김밥에 가격을 4000으로 수정
print(food)  # 출력 값: {'김밥': 4000, '돈가스': 6500, '김치찌개': 5000}

값을 추가할 때와 값을 수정할 때에 사용 방법은 동일합니다. 하지만 두 개의 차이점은 키(kye)가 없다면 dict 맨 마지막 위치에 키(key)와 값(value)이 추가되고 키(key)가 있다면 그 키(key)에 값(value)이 수정됩니다.

  1. 값을 삭제
  • pop 사용: 변수(값) = dict명.pop(키)
  • del 사용 del dict명[키]
# 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보다 수행 속도가 빠릅니다.

  1. 키(key) 전체 출력, 값(value) 전체 출력
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'>
  1. len 함수 사용: len(dict명)
food = {'김밥': 3000, '돈가스': 6500, '김치찌개': 5000}

print(food.len())  # 출력 값: 3

len 함수를 사용해서 dict에 길이를 출력하면 dict는 키(key)와 값(value)을 한쌍으로 묶어 출력합니다. 그렇기 때문에 food에 길이는 3을 출력합니다.

이상으로 파이썬에 dict를 알아봤습니다. 잘 못된 부분이나 부족한 부분 있으면 피드백 주시면 감사하겠습니다!!!

좋은 웹페이지 즐겨찾기