KDT 수업/Python
[파이썬] 10. 딕셔너리
니니는 진짜 전설이다
2023. 3. 9. 13:08
1. 딕셔너리(Dictionary)
- 대응관계를 나타내는 자료형으로 key와 value라는 것을 한 쌍으로 갖는 형태
- 하나의 딕셔너리의 key는 중복될 수 없음
- 하나의 딕셔너리의 value는 중복될 수 있음
1-1. 딕셔너리 만들기
변수 = {키:값, 키2:값2, ... }
In [ ]:
dic1 = {} # 빈 딕셔너리를 생성
print(dic1)
{}
In [ ]:
dic2 = {1:'김사과', 2:'반하나', 3:'오렌지', 4:'이메론'}
print(dic2)
{1: '김사과', 2: '반하나', 3: '오렌지', 4: '이메론'}
1-2. key를 통해 value찾기
In [ ]:
dic2 = {1:'김사과', 2:'반하나', 3:'오렌지', 4:'이메론'}
print(dic2[1])
print(dic2[3])
김사과
오렌지
In [ ]:
dic3 = { 'no':1, 'userid':'apple', 'name':'김사과', 'hp':'010-2222-2222'}
print(dic3['no'])
print(dic3['userid'])
1
apple
1-3. 데이터 추가 및 삭제
In [ ]:
dic4 = {1:'apple'}
print(dic4)
dic4[100] = 'orange' # 여기서 []속에 있는건 인덱스가 아니고 키값임
print(dic4)
dic4[50] = 'melon'
print(dic4)
del dic4[1]
print(dic4)
print(type(dic4))
{1: 'apple'}
{1: 'apple', 100: 'orange'}
{1: 'apple', 100: 'orange', 50: 'melon'}
{100: 'orange', 50: 'melon'}
<class 'dict'>
1-4. 딕셔너리 함수
In [ ]:
dic3 = { 'no':1, 'userid':'apple', 'name':'김사과', 'hp':'010-2222-2222'}
In [ ]:
# keys(): returns key list
print(dic3.keys())
dict_keys(['no', 'userid', 'name', 'hp'])
In [ ]:
# values(): returns value list
print(dic3.values())
dict_values([1, 'apple', '김사과', '010-2222-2222'])
In [ ]:
# items(): key:value를 한쌍으로 묶는 튜플을 반환
print(dic3.items())
dict_items([('no', 1), ('userid', 'apple'), ('name', '김사과'), ('hp', '010-2222-2222')])
In [ ]:
print(dic3['userid'])
# get(): key를 이용해서 value를 반환
print(dic3.get('userid'))
apple
apple
In [ ]:
print(dic3['age']) # 키가 존재하지 않으면 에러
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-20-1c5e82b54e88> in <module>
----> 1 print(dic3['age']) # 키가 존재하지 않으면 에러
KeyError: 'age'
In [ ]:
print(dic3.get('age')) #None 이 나옴
print(dic3.get('age', '나이를 알 수 없음'))
None
나이를 알 수 없음
In [ ]:
# in: key가 딕셔너리 안에 있는지 확인
print('name' in dic3) # True
print('age' in dic3) # False
True
False
1-5. 반복문을 활용한 딕셔너리 활용
In [ ]:
dic3 = { 'no':1, 'userid':'apple', 'name':'김사과', 'hp':'010-2222-2222'}
In [ ]:
for i in dic3:
print(i, end=' ') # key만 복사
no userid name hp
In [ ]:
for i in dic3.keys():
print(i, end=' ') # key만 복사
no userid name hp
In [ ]:
for i in dic3.values():
print(i, end=' ') # value만 복사
1 apple 김사과 010-2222-2222
In [ ]:
for i in dic3:
print(dic3[i], end=' ') # value만 복사
1 apple 김사과 010-2222-2222
In [ ]:
for i in dic3:
print(dic3.get(i), end=' ')
1 apple 김사과 010-2222-2222
In [ ]:
# 각 키를 순회하면서 키에 해당하는 값이 'apple'이 있는지 확인
dic3 = { 'no':1, 'userid':'apple', 'name':'김사과', 'hp':'010-2222-2222'}
for i in dic3: #개수만큼 반복
if dic3[i] == 'apple':
print('찾았습니다!')
else:
print('찾지 못했습니다!')
찾지 못했습니다!
찾았습니다!
찾지 못했습니다!
찾지 못했습니다!