자료구조(Dictionary)

김진태·2021년 5월 20일
1

list가 인덱스를 기반으로 값을 정하는 것이라면 Dictionary는 키를 기반으로 값을 저장하는 것이다.

딕셔너리의 선언방법은 다음과 같다

  • a = {'name':'jone'}

여기서 key는 'name'이며 값은 'jone'이된다.
키는 문자열,숫자,불린 등으로 선언할 수 있다. 하지만 일반적으로는 문자열로 사용한다.

딕셔너리의 값에는 다양한 값이 들어갈 수 있으므로 딕셔너리와 list 또한 저장될 수 있다.

* a={
    "name":"jone",
    "age":"11",
    "hobby":["soccer","baseball"],
    "family":{"father":"sina","mother":"nase"}
    }

빈 딕셔너리 만들기

  • a = {}
    a = dict()

딕셔너리 요소에 접근하기

딕셔너리 요소에 접근하기 위해서는 먼저 변수명에 대괄호를 붙여 키 값을 넣으면 된다.

  • a['name']

선언은 중괄호{ } 로 하였으나 접근을위해선 대괄호[ ]로해야한다.
딕셔너리에는 list와 달리 index가 없기 때문에 a[0] 식의 접근은 불가능하다.


딕셔너리에 값 추가하기/제거하기

추가하기

딕셔너리에 값을 추가할 때는 키를 기반으로 값을 입력하면 된다.

*a["girlfriend"] ="null"

Dictionary a를 출력해보면 girlfriend 가 추가된 것을 알 수있다.

{'name': 'jone', 'age': 11, 'hobby': ['soccer', 'baseball'], 'family': {'father': 'sina', 'mother': 'nase'}, 'girlfriend': 'null'} 

이미 존재하는 키에 새로운 값을 넣고 싶다면

  • a['age'] =20

위와같이 새로 선언해주면 된다.

{'name': 'jone', 'age': 20, 'hobby': ['soccer', 'baseball'], 'family': {'father': 'sina', 'mother': 'nase'}, 'girlfriend': 'null'}

제거하기

제거 역시 간단하다. list때처럼 del 키워드를 사용하여 특정 키를 지정하면 해당 요소가 제거된다.

  • del a['family']
{'name': 'jone', 'age': 20, 'hobby': ['soccer', 'baseball'], 'girlfriend': 'null'}

딕셔너리 내부에 키가 있는지 확인하기

딕셔너리에 존재하지 않는 키에 접근하게되면 KeyError가 발생한다.
이를 위해 존재하는 키인지 아닌지 확인하는 방법이 있다.
바로 in 키워드를 사용해서 접근하면 된다

  • if 'age' in a:
    print('hi')
hi

정상적으로 hi가 출력됨을 알 수 있다.

get() 함수

딕셔너리에 존재하지 않는 키에 접근할 경우 에러코드가 아닌 None을 출력시키는 메소드이다.

  • if a.get("family") ==None:
    print("존재하지않는 키")
	존재하지않는 키

정상 출력됨을 알 수있다.

profile
안녕!

0개의 댓글