딕셔너리

dozzzini·2025년 5월 14일

python

목록 보기
1/2
post-thumbnail
  • 사전에서 단어를 찾듯이 값을 가져올 수 있음

딕셔너리 만들기

형태

  • 변수명 = { key1 : value1, key2 : value2 }

키의 중복

  • 키가 중복되면 가장 뒤에 있는 값만 사용
lux = {'health' : 490, 'health' : 800}
>>lux['health']
800
  • 중복되는 키는 출력되지 않음
lux = {'health': 490, 'health': 800, 'mana': 334, 'melee': 550, 'armor': 18.72}
lux

#{'health': 800, 'mana': 334, 'melee': 550, 'armor': 18.72}

딕셔너리 키의 자료형

  • 모든 자료형 사용 가능하고, 섞어서 사용도 가능
  • 단, 키에는 리스트와 딕셔너리 사용은 불가능
x = {[10, 20]: 100}

#TypeError: unhashable type: 'list'

빈 딕셔너리 만들기

  • 딕셔너리 = { }
  • 딕셔너리 = dict()

dict로 딕셔너리 만들기

  • 딕셔너리 = dict(키1 = 값1, 키2 = 값2) : 키 - 값 형식으로 딕셔너리 만듦
lux1 = dict(health=490, mana=334, melee=550, armor=18.72) 
lux1

# {'health': 490, 'mana': 334, 'melee': 550, 'armor': 18.72}
  • 딕셔너리 = dict(zip([키1, 키2], [값1, 값2])) : zip 함수로 키와 값 리스트를 묶음
lux2 = dict(zip(['health', 'mana', 'melee', 'armor'], [490, 332, 550, 18.72]))
lux2

# {'health': 490, 'mana': 334, 'melee': 550, 'armor': 18.72}
  • 딕셔너리 = dict([(키1, 값1), (키2, 값2)]) : (키, 값) 형식의 튜플로 딕셔너리를 만듦
lux3 = dict([('health', 490), ('mana', 332), ('melee', 550), ('armor', 18.72)])
lux3 

# {'health': 490, 'mana': 334, 'melee': 550, 'armor': 18.72}
  • 딕셔너리 = dict({키1:값1, 키2:값2})
lux4 = dict({'health': 490, 'mana': 332, 'melee': 550, 'armor': 18.72})
lux4

# {'health': 490, 'mana': 334, 'melee': 550, 'armor': 18.72}

딕셔너리의 키에 접근하고 값 할당하기

딕셔너리 키에 접근

  • 딕셔너리 [키]
lux = {'health': 490, 'mana': 334, 'melee': 550, 'armor': 18.72}
lux['health']

# 490
  • 딕셔너리에 키를 지정하지 않은 상태 = 해당 딕셔너리 전체
lux

#{'health': 490, 'mana': 334, 'melee': 550, 'armor': 18.72}

딕셔너리 키에 값 할당

  • 딕셔너리[키] = 값
    • 기존에 있던 값을 변경

      lux = {'health': 490, 'mana': 334, 'melee': 550, 'armor': 18.72}
      lux['health'] = 300
      lux
      
      #{'health': 300, 'mana': 334, 'melee': 550, 'armor': 18.72}
    • 딕셔너리에 없는 키에 값을 할당하는 경우 - 해당 키가 추가된 후에 값이 할당

      lux = {'health': 490, 'mana': 334, 'melee': 550, 'armor': 18.72}
      lux['mana_regen'] = 3.28
      lux
      
      # {'health': 300, 'mana': 334, 'melee': 550, 'armor': 18.72, 'mana_regen' : 3.28}
  • 만약 없는 키에서 값을 가져오려고 할 때에는 Error 발생
lux = {'health': 490, 'mana': 334, 'melee': 550, 'armor': 18.72}
lux['attack_speed'] 

# KeyError: 'attack_speed'

딕셔너리에 키의 유무 파악

  • 결과값은 boolean (True / False)
  • 키 in 딕셔너리
lux = {'health': 490, 'mana': 334, 'melee': 550, 'armor': 18.72}
'health' in lux
# True

'attack_speed' in lux
#False
  • 키 not in 딕셔너리
'attack_speed' not in lux
# True

'health' not in lux
# False

코딩도장 에서 학습하면서 기록하고 있습니다😉

0개의 댓글