본문 바로가기

Python Basic/혼공파

[혼공파] Chapter 04 반복문 ②딕셔너리


  • 는 개념 정리
  •  개인적으로 새롭게 알게 된 점 

2. 딕셔너리 (Dictionary)

딕셔너리(disctionary) 정의

  • 사전적 의미: 사전
  • 파이썬에서의 딕셔너리: 자료를 저장할 수 있는 자료
    • 딕셔너리: '키'를 기반으로 '값'을 저장하는 것
    • 리스트: '인덱스'를 기반으로 '값'을 저장하는 것
dict_a = {

    "name": "어벤저스 엔드게임",
    "type": "히어로 무비"
    
    }
	

 

딕셔너리 선언과 접근

1. 딕셔너리 생성 (선언)

  • 딕셔너리는 중괄호 {}로 선언
  • '키: 값' 형태를 쉼표 (,) 로 연결해서 만듦
  • 키는 문자열, 숫자, 불 등으로 선언할 수 있고, 일반적으로는 문자열로 사용하는 경우가 많음. 
변수 = {
    "키a": "값a",
    "키b": "값b",
    "키c": "값c"
    }

2. 딕셔너리 접근

c.f. 리스트에서 대괄호 [] 내부에 넣는 자료를 요소, element 라고 함. 

  • key와 value의 쌍 여러 개가 { }로 둘러싸여 있음. 이 때, 하나의 key, value 쌍을 하나의 요소라고 함. 
  • 각각의 요소는 key: value 형태로 이뤄져 있고, 쉼표(,) 로 구분됨. 
  • 딕셔너리의 요소에 접근할 때는 리스트처럼 딕셔너리 뒤에 대괄호 [ ] 를 입력하고 내부에 인덱스처럼 키를 입력. 

* 딕셔너리를 선언할 때는 중괄호 { } 를 사용하지만,

딕셔너리의 요소에 접근 할 대는 딕셔너리 뒤에 대괄호 [ ]를 입력하고 내부에 인덱스처럼 키를 입력함 * 

 

CODE

print(dict_a)
print()

print(dict_a["name"])
print()

print(dict_a["type"])
print()

OUTPUT

{'name': '어밴저스 엔드게임', 'type': '히어로 무비'}

'어밴저스 엔드게임'

'히어로 무비'

딕셔너리 특징

  • 딕셔너리는 리스트나 튜플처럼 순차적으로 (sequential) 해당 요솟값을 구하지 않고, key를 통해 value를 얻음. 즉, baseball 이라는 단어의 뜻을 찾기 위해, 사전의 내용을 순차적으로 모두 검색하는 것이 아니라, baseball 이라는 단어가 있는 곳만 펼쳐 보는 것. 
  • "딕셔너리는 주로 어떤 것을 표현하는 데 사용할까?"
    • e.g. 4명의 사람의 각자의 특기를 표현할 수 있는 좋은 방법->  리스트나 문자열로는 표현하기가 어려움.
    • 파이썬의 딕셔너리 사용하면 쉽게 표현할 수 있음.
{'김연아': '피겨스케이팅', '류현진':'야구', '박지성':'축구', '귀도': '파이썬'}

딕셔너리 주의 할 점

  • 딕셔너리에서 Key는 고유한 값
    • 중복되는 Key 값을 설정해 놓으면 하나를 제외한 나머지 것들이 모두 무시됨. 

key 중복될 때

  • Key에는 리스트를 쓸 수 없음
    • 딕셔너리의 Key로 쓸 수 있느냐 없느냐는 Key가 변하는 값인지 변하지 않는 값인지에 달려 있음. 
    • 리스트는 그 값이 변할 수 있기 때문에 key로 쓸 수 없음. 튜플은 그 값이 변하지 않기 때문에 Key로 쓸 수 있음. 
    • 단, Value는 변하는 값이든 변하지 않는 값이든 상관없이 아무 값이나 넣을 수 있음. 
자료형 의미 가리키는 위치 선언 형식
리스트 인덱스를 기반으로 값을 저장 인덱스 list_a = []
딕셔너리 키를 기반으로 값을 저장 dict_a = { }

딕셔너리에 값 추가하기

딕셔너리에 값을 추가할 대는 키를 기반으로 값을 입력하면 됨. 

  • 딕셔너리[새로운 키] = 새로운 값
  • 마지막 위치에 요소가 추가됨
  • 딕셔너리에 이미 존재하고 있는 키를 지정하고 값을 넣으면, 기존의 값을 새로운 값으로 대치

딕셔너리의 값 제거하기

리스트와 마찬가지로 del 키워드를 사용하여 특정 키를 지정하면 해당 요소가 제거됨. 

  • del 딕셔너리[제거할 키]

딕셔너리 내부에 키가 있는지 확인하기

딕셔너리에 존재하지 않는 키에 접근하면 KeyError가 발생함. 따라서 존재하는 키인지, 존재하지 않는 키인지 확인할 수 있는 방법이 필요함. 

  • in 키워드
    • 리스트 내부에 값이 있는지 없는지 확인할 때 in 키워드를 사용했던 것처럼 딕셔너리 내부에 키가 있는지 없는지 확인할 때도 in 키워드를 사용함.

  • get( )
    • 딕셔너리의 키로 값을 추출하는 기능. 
    • dictionary['key']를 입력할 대와 같은 기능을 수행하지만, 존재하지 않는 키에 접근할 경우 KeyError를 발생시키지 않고 None 을 출력함.