본문 바로가기
● 알고리즘, 자료구조/2021 알고리즘

[NIPA AI 교육 기초] 딕셔너리

by 0ver-grow 2021. 7. 23.
반응형

add를 사용하지 않고 다이렉트로.

 

2개 이상의 동일한 Key가 있어선 안됨

my_dict = {1:"One", 1:"Yi"} #Bad

 

여러 자료의 묶음을 Key로 설정하고 싶다면, List가 아닌 Tuple을 사용

my_dict = {[1, 2, 3]:"Numbers"} #Error...

my_dict = {(1, 2, 3):"Numbers"} #OK!

my_dict = {"사과":"apple","바나나":"banana","당근":"carrot"}

#  my_dict에서 “사과”를 Key로 넣어 나온 Value를 변수 var1에 넣어봅시다.
var1 = my_dict["사과"]
print(var1)

# my_dict에서 당근-carrot을 제거
del my_dict["당근"]
print(my_dict)

# my_dict에서 체리-cherry를 추가
my_dict["체리"] = "cherry"
print(my_dict)

문제

  1. 빈 Dictionary를 만들고, 이를 변수 my_dict에 넣어봅시다.
  2. my_dict에 다음 대응관계를 넣어봅시다.
    • 1 → “Integer”
    • ‘a’ → “String”
    • (1, 2, 3) → “Tuple”
  3. my_dict에 다음 대응관계를 추가하는 코드를 10번째 줄에 작성해봅시다.
    • [1, 2, 3] → “List”
my_dict = {}
my_dict[1] = "Integer"
my_dict['a'] = 'String'
my_dict[(1,2,3)] = "Tuple"

try:
    my_dict[[1,2,3]] = "List"
    
except TypeError:
    print("List는 Dictionary의 Key가 될 수 없습니다.")

하지만 위 처럼 작성하면 TypeError가 실행된다.

왜? 

여러 자료의 묶음을 Key로 설정하고 싶다면, List가 아닌 Tuple을 사용해야 하기 때문.

고로 Try문을 이렇게 수정한다.

my_dict = {}
my_dict[1] = "Integer"
my_dict['a'] = 'String'
my_dict[(1,2,3)] = "Tuple"

try:
    my_dict[(1,2,3)] = "List"
    
except TypeError:
    print("List는 Dictionary의 Key가 될 수 없습니다.")
반응형