딕셔너리 (dict)

딕셔너리는 mutable 속성을 가진다.
중복 X (key: 중복 X, value: 중복 O), 순서 X, 수정 O, 삭제 O

# 딕셔너리 선언

딕셔너리는 다음과 같은 방법으로 선언 해줄 수 있다.

1
2
3
4
5
6
7
8
a = {'name': 'Jeong', 'phone': '010-9999-9999', 'birth': '890928'}
b = {0: 'Hello Python', 1: 'Hello Coding'}
c = {'arr':[1, 2, 3, 4, 5]}

print(type(a))
print(a)
print(b)
print(c)
1
2
3
4
<class 'dict'>
{'name': 'Jeong', 'phone': '010-9999-9999', 'birth': '890928'}
{0: 'Hello Python', 1: 'Hello Coding'}
{'arr': [1, 2, 3, 4, 5]}

# 딕셔너리 출력

특정 key를 선택하여 value 값을 출력 할 수도
get() 함수로 key를 지정하여 또는 슬라이싱을 통해서 값을 출력 할 수도 있다.

1
2
3
4
5
print(a['name'])
print(a.get('name'))
print(a.get('address'))
print(c.get('arr'))
print(c.get('arr')[1:3])
1
2
3
4
5
Jeong
Jeong
None
[1, 2, 3, 4, 5]
[2, 3]

boolean 출력 값을 출력 할 수도 있다.

1
2
3
print(2 in b)
print(2 not in b)
print('name' in a)
1
2
3
False
True
True

# 딕셔너리 추가

직관적으로 추가를 할 수 있다.

1
2
3
4
5
a['address'] = 'Seoul'
print(a)
a['rank'] = [1, 2, 3]
a['rank2'] = (1, 2, 3,)
print(a)
1
2
{'name': 'Jeong', 'phone': '010-9999-9999', 'birth': '890928', 'address': 'Seoul'}
{'name': 'Jeong', 'phone': '010-9999-9999', 'birth': '890928', 'address': 'Seoul', 'rank': [1, 2, 3], 'rank2': (1, 2, 3)}

# keys(), values(), items()

keys(), values()

딕셔너리에서 값들을 처리할 때,
keys(): key 값들만 list의 형태로 값을 반환
values(): value 값들만 list의 형태로 값을 반환

⚠️ keys(), values() 값들은 list 형태의 값으로 출력 되지만, 출력 된 값들을 사용하려면 list() 함수를 이용하여 list로 형변환 하여 데이터 처리를 한다.

1
2
print(a.keys())           
print(list(a.keys()))
1
2
dict_keys(['name', 'phone', 'birth', 'address', 'rank', 'rank2'])
['name', 'phone', 'birth', 'address', 'rank', 'rank2']

list로 형변환 이후 데이터 처리를 할 수 있다.

1
2
temp = list(a.keys())
print(temp[1:3])
1
['phone', 'birth']

items()

items()는 key와 value를 한 쌍으로 갖는 튜플 형식으로 값을 반환한다.

1
print(a.items())
1
dict_items([('name', 'Jeong'), ('phone', '010-9999-9999'), ('birth', '890928'), ('address', 'Seoul'), ('rank', [1, 2, 3]), ('rank2', (1, 2, 3))])

list로 형변환을 해준 후

1
print(list(a.items()))
1
[('name', 'Jeong'), ('phone', '010-9999-9999'), ('birth', '890928'), ('address', 'Seoul'), ('rank', [1, 2, 3]), ('rank2', (1, 2, 3))]

원하는 데이터 처리를 할 수 있다.

1
2
3
4
tems =  list(a.items())
print(tems[0])
print(tems[0][0])
print(tems[0][0][:2])
1
2
3
('name', 'Jeong')
name
na
Share