티스토리 뷰
딕셔너리(dictionary)란?
딕트 정의하기
딕트를 정의하는 방법은 2가지가 있습니다.
cafe = {'americano': 2100, "latte": 2800}
중괄호 안에 키와 값을 :(콜론)으로 구분해서 적고, 키값 쌍끼리 구분할 때는 쉼표로 구분해주시면 됩니다.
dict(americano=2100, latte=2800) #{'americano': 2100, 'latte': 2800}
두번째 방법은 dict()함수를 이용하는 것입니다. 딕트함수에 키와 값을 등호를 통해 넣어주시면 딕트가 만들어집니다.
값은 중복이되지만 키는 중복이 안된다는 것과 키에는 문자, 숫자, 튜플이 와야한다는 것을 알아주세요.
딕트에서 키 또는 값에 접근하기
cafe = {'americano': 2100, 'latte': 2800} "latte" in cafe #True "juice" in cafe #False
키를 통해 값을 가져오는 방법은 2가지가 있습니다.
cafe["americano"] #2100 cafe.get("latte") #2800
딕트명[키] 또는 딕트명.get(키)를 통해서 키에 해당하는 값을 가져 올수 있습니다. 딕트명[키]의 경우 일치하는 키가 없으면 에러가 나고, 딕트명.get(키)는 일치하는 키가 없으면 아무것도 반환하지 않습니다.
cafe.get("juice", "not found") #'not found'
get()의 경우 두번째 값을 전달할 수 있습니다. 두번째 값은 일치하는 키를 찾지 못했을 때 나오는 구문입니다. 위의 코드는 cafe라는 딕트형에서 juice라는 키를 찾고, 없을 시에 "not found"라고 커맨드창에 나옵니다.
딕트에 값 추가하기
cafe["juice"] = 2500 new_menu = {'tea': 2300, 'hot choco': 2700} cafe.update(new_menu) #{'americano': 2100, 'latte': 2800, 'juice': 2500, 'tea': 2300, 'hot choco': 2700}
대괄호 사이에 키를 적고 괄호 오른쪽에 값을 적으면, 기존에 있던 키일 경우엔 수정이 일어나고, 기존에 없던 키일 경우엔 새롭게 추가됩니다. 여러개를 한번에 추가하고 싶을 땐 update(새로 추가할 딕트)를 사용하면 됩니다.
update 이용 시에 같은 키가 존재할 경우, 새롭게 추가되는 키값으로 덮어씌여집니다.
딕트에 값 삭제하기
del cafe['hot choco'] cafe.pop('tea') #cafe = {'americano': 2100, 'latte': 2800, 'juice': 2500}
del과 pop()을 이용하면 딕트 안의 값을 삭제할 수 있습니다. del 뒤에 딕트명만 적어줄 경우엔 딕트 전체가 삭제됩니다.
keys(), values(), items() 활용하기
cafe.keys() #dict_keys(['americano', 'latte', 'juice']) cafe.values() #dict_values([2100, 2800, 2500])
이렇게 가져온 값들은 리스트 타입처럼 활용할 수 있습니다. items()는 키와 값을 튜플형으로 가져옵니다.
cafe.items() #dict_items([('americano', 2100), ('latte', 2800), ('juice', 2500)])
이런식으로 값들을 가져오는 것이 아직은 익숙하시지 않고 필요성도 못느낄 수도 있지만, 간단한 예를 통해서 좀 더 알아보도록 하겠습니다. 카페 메뉴의 가격을 백원씩 올려야 할 때 어떻게 하면 좋을까요?
for name, price in cafe.items(): price = price + 100 cafe[name] = price #cafe = {'americano': 2200, 'latte': 2900, 'juice': 2600}
items()를 통해 가져온 값들을 키는 name이라는 변수에, 값은 price라는 변수에 담았습니다. 그리고 루프를 통해 값을 100원씩 올린 뒤에 수정된 가격을 올렸습니다.
다음 포스팅에는 자료형의 마지막인 set을 배워보도록 하겠습니다.
공감은 제작자에게 큰 힘이 됩니다.
'Backend-dev > python' 카테고리의 다른 글
파이썬의 조건문(if) (1) | 2018.04.02 |
---|---|
파이썬의 자료형 set 알아보기 (0) | 2018.03.30 |
파이썬의 자료형 튜플 알아보기 (0) | 2018.03.30 |
파이썬의 자료형 list (0) | 2018.03.27 |
파이썬의 불리언(boolean) 값 (0) | 2018.03.27 |