1. 딕셔너리 자료형

딕셔너리 또한 값들의 집합인 자료형이다. 딕셔너리에는 순서가 존재하지 않고 "key : value"의 형태로 값을 저장한다. 딕셔너리는 중괄호 혹은 함수를 사용해서 선언 및 초기화 할 수 있다.

 

  1. 딕셔너리 이름 = {key1:value1, key2:value2, key3:value3}
  2. 딕셔너리 이름 = dict(key1=value1, key2=value2, key3=value3)
dic1 = {"apple":"사과", "bird":"새", "bug":"벌레"}
print(dic1)

dic2 = dict(apple = "사과", bird = "새", bug = "벌레")
print(dic2)

두 방법을 모두 사용하지만, 중괄호를 이용한 초기화를 더 많이 사용한다.

 

dic = {}

dic["apple"] = "사과"
dic["grape"] = "포도"
dic["fruits"] = ["바나나", "딸기", "오렌지"]
print(dic)

딕셔너리는 리스트와 다르게 빈 딕셔너리({})를 초기화해도 함수 없이 위와 같이 코드로 값을 추가할 수 있다.

 

dic1 = {"apple":"사과", "bird":"새", "bug":"벌레"}
print(dic1)

del dic1["bug"]
print(dic1)

딕셔너리의 요소는 del 키워드로 삭제할 수 있다.

 

문자열 요소는 Immutable 타입이기 때문에 indexing으로 수정할 수 없다. 딕셔너리에서 key는 Immutable 타입이다. 이 외에도 key는 value를 찾기위한 유일한 값으로 중복사용할 수 없다. 또한 key에는 리스트를 사용할 수 없는 반면 value에는 어떤 값이든 상관없이 올 수 있다.

 

dic = {"num": 3}
dic["num"] = 4

# key에 False 사용할 수 있다.
dic[False] = 0
print(dic)

# value는 어느 값이든 저장할 수 있다.
dic[True] = [1, 10, "파이썬"]
dic["nums"] = {"one": 1, "two": 2}
print(dic) # {'num': 4, False: 0, True: [1, 10, '파이썬'], 'nums': {'one': 1, 'two': 2}}

 

2. 딕셔너리 함수

함수 설명
x.keys() 딕셔너리 x의 key만 모아 객체 형식 dict_keys([key, key2, ...])으로 반환
x.values() 딕셔너리 x의 value만 모아 객체 dict_values([value1, value2, ….. ])으로 반환
x.items() 딕셔너리 x의 key와 value를 튜플로 묶어 dict_items([(key1, value1), (key2, value2), ... ]) 형식으로 반환
x.clear() 딕셔너리의 모든 값을 삭제( del 키워드는 객체 자체를 삭제)
x.get(key) x[key]와 마찬가지로 해당 key의 value 반환
key in x key 값이 x 딕셔너리에 존재하는지 판별하는 키워드
  1. x.key()가 실행되면 dict_keys라는 객체를 반환합니다. 만약 리스트 형태로 필요하다면 "list(x.keys())"로 변경할 수 있지만, 추후 배울 반복성 구문에서 또한 요소에 차례대로 접근할 수 있습니다.
  2. 튜플은 다음 챕터에서 참고해주세요.
  3. clear 함수를 사용하면 빈 딕셔너리로 바뀝니다.
  4. key가 존재하지 않으면 'None'을 반환합니다. 이때 만약 'None'이 아니라 다른 값을 출력하고 싶다면 "x.get(key, 출력하고 싶은 값)" 으로 작성합니다.
  5. key 값이 존재하면 True를, 존재하지 않으면 False 를 반환합니다.
mem = {"김구름": 25, "박에듀": 23, "온라인": 24}
print(mem.keys()) # dict_keys(['김구름', '박에듀', '온라인'])

# 새로운 리스트 변수에 초기화
names = list(mem.keys())
print(names) # ['김구름', '박에듀', '온라인']

names.append("윤레벨")
print("새로운 리스트", names)
print("원래 딕셔너리에서 key 모음", list(mem.keys()))
print(list(mem.values()))

print("key와 value를 튜플로 ", mem.items()) # dict_items([('김구름', 25), ('박에듀', 23), ('온라인', 24)])

exist = '박에듀' in mem 
print(exist)

mem.clear()
print(mem) #빈 딕셔너리 출력 {}

+ Recent posts