Byeonguk Kim

안녕하세요. 29살의 조금은 늦은 나이로 새롭게 개발자로 시작하는 신입 개발자입니다. 포트폴리오 [https://deaguowl.github.io]

파이썬 02. Dictionary 문법

05 Mar 2019 » Python

###2019.03.04 TIL

(TIL은 스스로 이해한 것을 바탕으로 정리한 것으로 오류가 있을 수 있습니다)

파이썬 기본 문법

======================== 1.기본 문법(Dictionary) ————- python 기본 문법 2일차이다.

배운거 복습하기

  • dictionary 삽입(insert) 방법 - 3가지 말하기
  • dictionary 검색(search) 방법
  • dictionary 삭제(delete) 방법 - 3가지 말하기

Dictionary

javascript에서 배우던 object와 비슷한 것 같다.

TIL을 진행하기에 앞서서 오늘 배운 꼭 알아야 하는 것을 좀 적어보려고 한다.

  • 변수란 데이터를 저장할 수 있는 메모리 공간이다.

  • 단 파이썬에서는 변수가 이름과 값 객체로 나누어진다. 우리가 파이썬에서 변수라고 부르는 것은 이름이다. 값 객체는 다른 메모리 공간에 있다.

  • a = 10으로 변수를 지정하고 a = 20 으로 새로운 변수를 지정해주면 10 이 20으로 바뀐 것이 아니라, 20이라는 새로운 값 객체가 생성된 것이고 a 는 20이라는 값 객체를 가르키게 된다. 따라서 처음 생성되었던 값 객체 10은 파이썬에서 자동적으로 없애줌(부르는 이름이 할당되지 않으면 삭제된다) 추가적으로 a = 10 이라고 파이썬에서 적어주면 10이라는 값 객체가 먼저 메모리에 생성되고 a라는 변수가 할당된다.
  • list1 = [1,2,3] 에서 list는 다양한 변수들의 모임이므로 1,2,3은 한곳에 저장되어 있지 않고 다 따로 떨어져있다. 이것에 대한 표현을 [ * , * , * ] 라고 생각하면 좀 더 쉽다. 각각의 *가 1과 2와 3을 가르키고 있다.
  • iterable 객체 - 하나씩 돌면서 갈 수 있는 객체 (list, tuple, string, dictionary)

dictionary

그럼 이제 본격적으로 dictionary에 대해 다뤄보고자 한다.

딕셔너리의 정의

딕셔너리는 collection of pairs로 우리가 저장하려는 데이터(item)을 key라는 곳에 분류하여 넣는 것을 말한다. 이제 key와 item(value)는 pair를 이루어 들어가게 된다.

딕셔너리 요소 추가 (3가지)

dic = {} —> 항상 빈 딕셔너리를 만든 이후에 모든 것이 진행되어야 한다.

  1. dic[“a”] = 1 —> “a”라는 key값이 있으면 value를 1로 바꾸고 없으면 추가 한다.

  2. dic.setdefault()

    • dic.setdefault(“e”) — > “e”라는 key값이 있으면 value 추출 / 없으면 “e”에 None 삽입

    • dic.setdefault(“e”, 1) —> “e”라는 key값이 있으면 value 추출 / 없으면 “e”에 1 삽입

  3. dic.update({}) #setdefault는 key값이 있으면 value 추출/ update는 value를 바꿈

    • dic.update({“e”:40}) —> “e”라는 key 값이 있으면 바꾸고/ 없으면 “e”에 40 추가

    • dic.update(((“e”, 1),)) — > 위와 같으나 튜플로 넣을 시 튜플안에 튜플이 있는 형태로 삽입

    • update안에 들어있는 sequence element #0 has length 1 —> 2 is required

딕셔너리 요소 삭제 (3가지)

  1. del a[key] —> 해당 key 값의 value도 함께 삭제

  2. dic.pop(key) —> 해당 key의 페어를 꺼내서 반환하고 삭제

  3. dic.clear() —> 모든 key 및 value 삭제

##딕셔너리 서칭

  1. key 추출 – 3가지

    1. dic.keys() —> view로 반환// list(dic.keys()) —> list로 반환

    2. for k in dic.keys() == for k in dic

    3. key in dic —> 해당 key가 dic에 있는지 확인 후 True or False 반환

  2. value 추출 – 3가지

    1. dic.values() —> view로 반환 // list(dic.values()) —> list로 반환

    2. dic[key] —> 해당 key의 value 추출 // 없을시 에러 송출

    3. dic.get(key) —> 해당 key의 value 추출 // 없을시 None이 나옴

      1. dic.get(key, “None”) —> 해당 key가 없을시 “None” 추출
  3. key & value 추출 – 2가지

    1. dic.items() —> key와 value를 view로 반환 // list(dic.items()) —-> list로 반환

    2. for k in dic.items() /—>tuple형태로 반환 / for key, value in dic.items() —> 그냥 반환

딕셔너리 주의 점

  1. key는 immutable만 쓸 수 있음 (tuple, string, num)

  2. value는 모두 사용 가능

  3. key는 중복이 불가능하다

  4. view 객체와 list의 차이점