딕셔너리
- 말그대로 사전이라는 뜻
- people 단어에 사람이라는 뜻이 있듯이, 키값에 대한 벨류값으로 짝지어진 자료구조
- 딕셔너리 타입은 키값은 불변, 벨류값은 변할수 있음(가변적)
- 키와 벨류가 맵핑되어 있음
- 순서가 없음(index 번호X)
# 딕셔너리 선언
dict1 = {'name':'sjy'}
dict2 = {1:5,2:13} #1번 키값의 벨류는 5 , 2번 키값의 벨류는 13
dict3 = {'name':['sjy','chw','kcy','pgj'],
'age':[25,23,20,24]}
# 딕셔너리 안의 요소 구분은 ,(콤마)
# 키와 벨류 구분은 :(콜론)
print(dict1)
print(dict2)
print(dict3)
{'name': 'sjy'}
{1: 5, 2: 13}
{'name': ['sjy', 'chw', 'kcy', 'pgj'], 'age': [25, 23, 20, 24]}
# 본인의 정보('name','age','phone')를 딕셔너리로 선언하기
info = {'name':'jm','age':'1','phone':'010-1111-1111'}
print(type(info))
<class 'dict'> #형태는 클래스 딕셔너리
# 벨류값 접근
# 키값을 통해 접근
info['name']
info['phone'][-4:]
'010-1111-1111' #이때 나온 값은 문자열
'1111' #문자열 뒤 4자리만 슬라이싱
# 새로운 값 추가하기
# 성별 추가
# 없는 키값 부르기 => 대입
info['sex'] = 'male'
info
{'name': 'jm', 'age': '1', 'phone': '010-1111-1111', 'sex': 'male'}
# info 'blood' 혈액형 정보 추가하기
info['blood']='B'
info
{'name': 'jm',
'age': '1',
'phone': '010-1111-1111',
'sex': 'male',
'blood': 'B'}
# 딕셔너리 벨류값 변경
info['name']='jj'
info
# 핸드폰 번호 변경 뒷자리 1234으로 변경
info['phone'] = '010-1111-1234'
info
{'name': 'jj',
'age': '1',
'phone': '010-1111-1234',
'sex': 'male',
'blood': 'B'}
딕셔너리 관련 함수
# 키값을 보여주는 함수
# keys()
info.keys()
dict_keys(['name', 'age', 'phone', 'sex', 'blood'])
for i in info.keys(): #하나하나 info['name'] info['age'] 써서 접근하지 않고 for문 이용가능
print(info[i])
jj
1
010-1111-1234
male
B
# 벨류값만 출력해주는 함수
# values()
info.values()
dict_values(['jj', '1', '010-1111-1234', 'male', 'B'])
# 키와 벨류를 items라는 형식으로 출력
info.items()
dict_items([('name', 'jj'), ('age', '1'), ('phone', '010-1111-1234'), ('sex', 'male'), ('blood', 'B')])
# 키와 벨류를 items라는 형식으로 출력
for i in info.items():
print(i) #튜플에 담고 있다
('name', 'jj')
('age', '1')
('phone', '010-1111-1234')
('sex', 'male')
('blood', 'B')
for a,b in info.items():
print(a,b)
name jj #위의 튜플이 각각 순서대로 a,b 에 들어온다
age 1
phone 010-1111-1234
sex male
blood B
# 딕셔너리 값 삭제
del info['sex']
info
{'name': 'jj', 'age': '1', 'phone': '010-1111-1234', 'blood': 'B'}
# 채윤 정보만 for문 활용해서 출력해보기
for i in dict3.values():
print(i[2])
for i in dict3.keys():
print(dict3[i][2])
kcy
20
kcy
20
books = [{'name':'점프투파이썬','price':20000,'at':'박응용'},
{'name':'머신러닝','price':45000,'at':'최현우'},
{'name':'JSP&Servlet','price':26000,'at':'박슬이'},
{'name':'자바스크립트','price':19000,'at':'김운비'}]
# 자바스크립트 정보 출력하기
print(books[3])
# 자바스크립트 책이 있다면 그 책의 모든 정보 출력하기
for b in books:
if '자바' in b['name']: # '자바'라는 이름의 책이 있다면 책 정보 출력
print(b)
#키보드로 부터 입력받은 책의 정보가 있다면 출력하기(기준: 책제목)
input_name = input('검색할 책 제목 입력>>')
for b in books:
if input_name in b['name']:
print(b)
{'name': '자바스크립트', 'price': 19000, 'at': '김운비'}
{'name': '자바스크립트', 'price': 19000, 'at': '김운비'}
검색할 책 제목 입력>>머신
{'name': '머신러닝', 'price': 45000, 'at': '최현우'}
# 30000원 이상인 책 검색해보기
input_price = int(input('검색할 가격 입력>>'))
for b in books:
if b['price'] >= input_price:
print(b)
검색할 가격 입력>>30000
{'name': '머신러닝', 'price': 45000, 'at': '최현우'}
'빅데이터 서비스 교육 > Python' 카테고리의 다른 글
Python 함수 (0) | 2022.05.03 |
---|---|
Python 반복문(while, for) (0) | 2022.04.29 |
Python 튜플 (0) | 2022.04.29 |
Python 리스트 (0) | 2022.04.29 |
Python 조건문 (0) | 2022.04.29 |