[파이썬] 딕셔너리

모선·2023년 3월 19일

Python

목록 보기
3/3
post-thumbnail

딕셔너리

중괄호 {} 안에 키: 값 을 저장하는 형식이다.
키에는 하나의 값만 지정할 수 있어 키-값 쌍이라고도 부른다.
키는 리스트와 딕셔너리를 제외해, 문자열, 정수, 실수, bool 모두 사용 가능하다. 그리고 값에는 리스트, 딕셔너리 등 모든 자료형을 사용할 수 있다.

ex) hyo = {'name': 'hyo', 'age': 22}

딕셔너리 생성

  • 이름 = {}
  • 이름 = dict()

dict()

키와 값을 연결하거나 리스트, 튜플, 딕셔너리로 딕셔너리를 만들 때 사용한다.

이름 = dict(키1=값1, 키2=값2) # 키=값
이름 = dict(zip([키1, 키2], [값1, 값2]) # zip 함수 사용
이름 = dict([(키1, 값1), (키2, 값2)]) # 리스트 안에 튜플
이름 = dict({키1: 값1, 키2: 값2}) # 딕셔너리

중복된 키

중복된 키를 생성했다면 가장 뒤에 있는 값을 사용한다.
그리고 중복된 키는 저장되지 않는다.

hyo = {'name': 'hyo', 'age': 22, 'age':23}
print(hyo['age']) # 23
print(hyo) # {'name': 'hyo', 'age':23}

키 접근

딕셔너리[키] 형식으로 접근하면 값을 반환해준다.

hyo = {'name': 'hyo', 'age': 22}
print(hyo['name']) # hyo 반환

값 할당

딕셔너리[키] = 값 형식으로 지정

👉 추가 및 수정

- 딕셔너리.setdefault(키)
키의 값을 None으로 지정하여 딕셔너리에 추가한다.

- 딕셔너리.setdefault(키, 기본값)
키의 값을 기본값으로 설정하여 딕셔너리에 추가하고, 기본값을 반환해준다.

- 딕셔너리.update(키=값)
해당 키가 딕셔너리에 존재하면 새로 지정한 값으로 값이 수정되고, 없었다면 새로 키-값 쌍을 추가한다. 콤마로 구분해주면 여러 값을 update 할 수 있다.

이 함수는 키가 문자열일 때만 사용가능하다.
키가 숫자인 경우에는 update(딕셔너리) 형태로 사용해야 된다.
ex) hyo.update({173: 'height', 250: 'footSize'})

리스트와 튜플을 사용하는 방법도 있다.
ex) hyo.update([[173, 'height'], [250, 'footSize']])

반복 가능한 객체로 값으로 수정하는 방법에는 아래와 같이 zip 을 사용한다.
ex) hyo.update(zip([1, 2], ['one', 'two']))

👉 삭제

- pop(키)
특정 키-값을 삭제한 후, 삭제한 값을 반환시켜준다.

- pop(키, 기본값)
키가 있을 때는 해당 키-값 쌍을 삭제한 뒤, 값을 반환하고, 키가 없으면 기본값만 반환한다.

- del 딕셔너리[키]
반환하는 값은 없고, 딕셔너리의 키-값 쌍을 삭제한다.

- 딕셔너리.popitem()
3.6 버전 이상에서는 마지막 키-값 쌍을 삭제하고, 이전 버전에서는 임의로 삭제한다.

- 딕셔너리.clear()
딕셔너리의 모든 키-값 쌍을 삭제한다.

👉 키 값 가져오기

- 딕셔너리.get(키)
딕셔너리에서 특정 키의 값을 가져온다.

- 딕셔너리.get(키, 기본값)
딕셔너리에 키가 있을 때는 해당 키의 값을 반환하지만, 없을 때는 기본값을 반환한다.

- 딕셔너리.items()
딕셔너리의 키-값 쌍을 모두 가져온다.

hyo = {'a': 1, 'b': 2, 'c', 3}
print(hyo.items()) # dict_items([('a', 1), ('b', 2), ('c', 3)])

- 딕셔너리.key()
키를 모두 가져온다.

hyo = {'a': 1, 'b': 2, 'c', 3}
print(hyo.key()) # dict_keys(['a', 'b', 'c'])

- 딕셔너리.values()
값을 모두 가져온다.

hyo = {'a': 1, 'b': 2, 'c', 3}
print(hyo.values()) # dict_values([1, 2, 3)])

참고사이트: https://dojang.io/mod/page/view.php?id=2307

profile
https://hy5sun.tistory.com/ << 이사중

0개의 댓글