<python> Dictionary

mini_y·2020년 12월 13일
0

python

목록 보기
9/9

딕셔너리

딕셔너리는 여러 개의 값을 나타낼 수 있는 자료형으로 키를 기반으로 값을 저장한다.

변수 = {
키 : 값,
키 : 값,
...
키 : 값,
}

>>> dict_a = {
	"name" : "정민",
	"age" : 27,
	}
>>> dict_a
{'name': '정민', 'age': 27}
>>> dict_a["name"]
'정민'
>>> dict_a["age"]
27

딕셔너리를 선언할 때에는 중괄호{ }를 사용하지만 딕셔너리 요소에 접근할 때는 리스트처럼 딕셔너리 뒤에 리스트처럼 대괄호[ ]를 입력한다.

딕셔너리에 값 추가, 변경

딕셔너리[새로운 키] = 새로운 값

>>> dict_a["hobby"] = "reading" #"hobby"키 추가하기
>>> dict_a
{'name': '정민', 'age': 27, 'hobby': 'reading'}

setdefault

키-값 쌍추가, 키만 지정할 경우 값에 None을 저장한다.

딕셔너리.setdefault(키, 값)

>>> dict_a.setdefault("birth", 940214) #"birth"라는 키와 값 추가
940214
>>> dict_a
{'name': '정민', 'hobby': 'reading', 'birth': 940214}

키-값 쌍 추가만 가능하다. 이미 들어있는 키의 값은 수정할 수 없다.

update

키-값 쌍 추가, 값 수정 가능하다.(단, 키는 문자열이여야 한다. 만약 키가 숫자일 경우에는 update(딕셔너리)처럼 딕셔너리를 넣어서 값을 수정할 수 있다.)

딕셔너리.update(키 = 값) [키가 문자열일 경우]
딕셔너리.update({키 : "값"}) [키가 숫자일 경우]

>>> dict_a.update(age = 27) #"age"라는 키 추가
>>> dict_a
{'name': '정민', 'hobby': 'reading', 'birth': 940214, 'age': 27}
>>> dict_a.update(age = 26) #"age"키의 값 수정
>>> dict_a
{'name': '정민', 'hobby': 'reading', 'birth': 940214, 'age': 26}

update는 키-값 쌍 여러개를 추가, 수정도 가능하다.

>>> dict_a.update(age = 26, hobby = "watching movie")
>>> dict_a
{'name': '정민', 'hobby': 'watching movie', 'birth': 940214, 'age': 26}

딕셔너리 값 변경

딕셔너리[기존 키] = 변경할 새로운 값

>>> dict_a["age"] = 26 #값을 만나이로 변경
>>> dict_a
{'name': '정민', 'age': 26, 'hobby': 'reading'}

딕셔너리에 값 제거하기

del 딕셔너리[삭제할 키]

>>> del dict_a["age"] #"age"키 삭제
>>> dict_a
{'name': '정민', 'hobby': 'reading'}

딕셔너리.pop(키)

>>> dict_a
{'name': '정민', 'hobby': 'watching movie', 'birth': 940214, 'age': 26}
>>> dict_a.pop("age") #"age"라는 키와 값 삭제
26
>>> dict_a
{'name': '정민', 'hobby': 'watching movie', 'birth': 940214}

임의의 키-값 삭제하기

딕셔너리.poptime()

모든 키-값 삭제하기

딕셔너리.clear()

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

딕셔너리에 존재하지 않는 키에 접근하면 KeyError가 발생한다. 그래서 존재하는 키인지 아닌지 확인할 수 있는 방법이 필요하다.

>>> dict_a["adress"] #딕셔너리에 없는 키를 입력할 경우
Traceback (most recent call last):
  File "<pyshell#28>", line 1, in <module>
    dict_a["adress"]
KeyError: 'adress'

딕셔너리에 없는 키에서 값을 가져오려고 하면 위와같이 에러가 발생한다.

in 키워드

키 in 딕셔너리

>>> "age" in dict_a
False
>>> "hobby" in dict_a
True

딕셔너리에 특정 키가 있으면 True, 없으면 False가 출력된다.

get() 함수

딕셔너리에서 특정 키의 값을 가져오거나 저장한다.

딕셔너리.get(키)
딕셔너리.get(키, 기본 값) [키가 없을 경우 기본값을 반환한다.]

>>> dict_a.get("name")
'정민'
>>> dict_a.get("age")
>>> 
>>> dict_a.get("age", 26) #"age"라는 키가 없기때문에 기본값을 반환함
26
>>> dict_a
{'name': '정민', 'hobby': 'watching movie', 'birth': 940214}

딕셔너리에서 키-값 모두 가져오기

.items() : 키-깂 모두 가져옴
.keys() : 키를 모두 가져옴
. values() : 값을 모두 가져옴

>>> dict_a.items()
dict_items([('name', '정민'), ('hobby', 'watching movie'), ('birth', 940214), ('age', 27), ('adress', 'seoul')])
>>> dict_a.keys()
dict_keys(['name', 'hobby', 'birth', 'age', 'adress'])
>>> dict_a.values()
dict_values(['정민', 'watching movie', 940214, 27, 'seoul'])
profile
Hello!

0개의 댓글