[Python] 딕셔너리

Narcoker·2023년 3월 28일
0

Python

목록 보기
5/13

✏️딕셔너리

중괄호 리터럴을 사용하되 key와 value를 콤파로 구분하여 나열한다.
key는 숫자 등 다른 형으로도 정의가 가능하다.
단 key는 중복을 허용하지 않는다.
대신 순서는 허용한다.

value는 숫자, 문자열, 리스트, 튜플 등 여러 형태를 허용한다.

person = {
	'이름': '나귀욤',
    '나이': 7,
    '키': 120,
    '몸무게': 23,
}

print(person['이름']) # 나위굠
print(person['나이']) # 7
print(person['별명']) # KeyError: '별명'

get

key에 해당하는 value를 반환한다.
만약 해당 key가 없다면 None를 반환한다.

person = {
	'이름': '나귀욤',
    '나이': 7,
    '키': 120,
    '몸무게': 23,
}

print(person.get('이름')) # 나위굠
print(person.get('나이')) # 7
print(person.get('별명')) # None

key-value 추가

대괄호에 새로운 key를 넣고 값을 할당하여 추가한다.

person = {
	'이름': '나귀욤',
    '나이': 7,
    '키': 120,
    '몸무게': 23,
}

person['최종학력'] = '유치원'
print(person) # {'이름': '나귀욤', '나이': 7, '키': 120, '몸무게': 23, '최종학력': '유치원'}

value 재할당

대활호에 해당 key를 넣고 값을 재할당한다.

person = {
	'이름': '나귀욤',
    '나이': 7,
    '키': 120,
    '몸무게': 23,
}

person['키'] = 150

print(person.get('키')) # 150

update()

여러 key들의 value 재할당한다.

person = {
	'이름': '나귀욤',
    '나이': 7,
    '키': 120,
    '몸무게': 23,
}

person.update({'키': 130, '몸무게': 26})

print(person) # {'이름': '나귀욤', '나이': 7, '키': 130, '몸무게': 26}

pop()

특정 키를 삭제한다.

person = {
	'이름': '나귀욤',
    '나이': 7,
    '키': 120,
    '몸무게': 23,
}

person.pop('몸무게')
print(person) # {'이름': '나귀욤', '나이': 7, '키': 120}

clear()

모든 키를 삭제한다.

person = {
	'이름': '나귀욤',
    '나이': 7,
    '키': 120,
    '몸무게': 23,
}

person.clear()
print(person) # {}

keys()

딕셔녀리의 모든 key를 dict_keys 객체 형태로 반환한다.

person = {
	'이름': '나귀욤',
    '나이': 7,
    '키': 120,
    '몸무게': 23,
}

print(person.keys()) # dict_keys(['이름', '나이', '키', '몸무게'])

values()

딕셔너리의 모든 value를 dict_values 객체 형태로 반환한다.

person = {
	'이름': '나귀욤',
    '나이': 7,
    '키': 120,
    '몸무게': 23,
}

print(person.values()) # dict_values(['나귀욤', 7, 120, 23])

items()

딕셔너리의 모든 key와 value를 dict_items 객체 형태로 반환한다.

person = {
	'이름': '나귀욤',
    '나이': 7,
    '키': 120,
    '몸무게': 23,
}

print(person.items()) # dict_items([('이름', '나귀욤'), ('나이', 7), ('키', 120), ('몸무게', 23)])

fromkeys()

제공된 keys를 통해 새로운 딕셔너리를 생성하고 반환한다.

seq = ('name', 'age', 'sex')
# seq = ['name', 'age', 'sex'] 여도 가능

dict_1 = dict.fromkeys(seq)
print(dict_1) # {'age':None, 'name':None, 'sex':None}

dict_2 = dict.fromkeys(seq, 10)
print(dict_2) # {'age':10, 'name':10, 'sex':10}

popitem()

마지막에 추가된 데이터를 삭제한다.

my_dict = {
    "A" : 1,
    "B" : 2,
    "C" : 3,
}

my_dict["D"] = 4
print(my_dict) # {'A': 1, 'B': 2, 'C': 3, 'D': 4}

my_dict.popitem()
print(my_dict) # {'A': 1, 'B': 2, 'C': 3}

setdefault()

key에 해당하는 value를 반환한다.
key가 없다면 새로 만들고 default value로 설정하고 반환한다.
default value를 지정하지 않으면 None 이다.

my_dict = {"one": 1, "two": 2, "three": 3}
print(my_dict.setdefault("one")) # 1

print(my_dict.setdefault("four", 4)) # 4
print(my_dict) # {'one': 1, 'two': 2, 'three': 3, 'four': 4}
profile
열정, 끈기, 집념의 Frontend Developer

0개의 댓글