Python

[Python] 딕셔너리(dict)

퓨어맨 2022. 6. 28. 09:01

딕셔너리

  • 말그대로 사전이라는 뜻
  • people 단어에 사람이라는 뜻이 있듯이, 키값에 대한 벨류값으로 짝지어진 자료구조
  • 딕셔너리 타입은 키값은 불변, 벨류값은 변할 수 있음(가변)
  • 키와 벨류가 맵핑되어 있음
  • 순서가 없음(index 번호 없음)
# 딕셔너리 선언
dict1 = {'name':'kjw'}
dict2 = {1:5,2:13}
dict3 = {'name':['kjw','chw','kcy','pgj'], 'age':[25,23,20,24]}
# 딕셔너리 안의 요소 구분은 ,(콤마)
# 키와 벨류 구분은 : (콜론)

print(dict1)
print(dict2)
print(dict3)
{'name': 'kjw'}
{1: 5, 2: 13}
{'name': ['kjw', 'chw', 'kcy', 'pgj'], 'age': [25, 23, 20, 24]}

 

 

# 본인의 정보('name','age','phone')를 딕셔너리로 선언하기
info = {'name':'kjw','age':28,'phone':'010-1234-5678'}
print(type(info))
<class 'dict'>

 

 

# 벨류값 접근
# 키값을 통해 접근
info['name']
# phone 접근
info['phone'][-4:]
'5678'

 

 

# 새로운 값 추가하기
# 성별 추가
# 없는 키값 부르기 => 대입
info['sex'] = 'male'
info
{'name': 'kjw', 'age': 28, 'phone': '010-1234-5678', 'sex': 'male'}

 

 

# info 'blood' 혈액형 정보 추가하기
info['blood'] = 'AB'
info
{'name': 'kjw',
 'age': 28,
 'phone': '010-1234-5678',
 'sex': 'male',
 'blood': 'AB'}

 

 

# 딕셔너리 벨류값 변경
info['name'] = 'kmw'
info

# 핸드폰 번호 변경
info['phone'] = '010-5678-1234'
info
{'name': 'kmw',
 'age': 28,
 'phone': '010-5678-1234',
 'sex': 'male',
 'blood': 'AB'}

 

 

# 키값을 보여주는 함수
# keys()
info.keys()
for i in info.keys():
    print(info[i])
kmw
28
010-5188-1234
male
AB

 

 

# 벨류값만 출력해주는 함수
# values()
info.values()
dict_values(['kmw', 28, '010-5678-1234', 'male', 'AB'])

 

 

# 키와 벨류를 items라는 형식으로 출력
for i in info.items():
    print(i)
('name', 'kmw')
('age', 28)
('phone', '010-5678-1234')
('sex', 'male')
('blood', 'AB')

 

 

for a,b in info.items():
    print(a,b)
name kmw
age 28
phone 010-5188-1234
sex male
blood AB

 

 

# 딕셔너리 값 삭제
del info['sex']
info
{'name': 'kmw', 'age': 28, 'phone': '010-5188-1234', 'blood': 'AB'}

 

 

dict3
{'name': ['kjw', 'chw', 'kcy', 'pgj'], 'age': [25, 23, 20, 24]}

 

 

# kcy 정보만 출력해보기
for a,b in dict3.items():
    print(b[2])

for i in dict3.values():
    print(i[2])
    
for i in dict3.keys():
    print(dict3[i][2])
kcy
20
kcy
20
kcy
20

 

 

books = [{'name':'점프투파이썬','price':20000,'at':'박응용'},
         {'name':'머신러닝','price':45000,'at':'유재석'},
         {'name':'JSP&Servlet','price':26000,'at':'송지효'},
         {'name':'자바스크립트','price':19000,'at':'이광수'}]
books
# 자바스크립트 책이 있다면 그 책의 모든 정보 출력하기
# 키보드로 부터 입력받은 책의 정보가 있다면 출력하기(기준:책 제목)
input_name = input('검색할 책 제목 입력해주세요 >> ')
for b in books:
    if input_name in b['name']: # 딕셔너리
        print('책제목:',b['name'])
        print('가격:',b['price'])
        print('저자:',b['at'])
검색할 책 제목 입력해주세요 >> 머신러닝
책제목: 머신러닝
가격: 45000
저자: 유재석

 

 

# 30000원 이상인 책 검색해보기
input_price = int(input('검색할 가격을 입력해주세요 >> '))
for b in books:
    if b['price'] >= input_price:
        print('책제목:',b['name'])
        print('가격:',b['price'])
        print('저자:',b['at'])
검색할 가격을 입력해주세요 >> 21000
책제목: 머신러닝
가격: 45000
저자: 유재석
책제목: JSP&Servlet
가격: 26000
저자: 송지효

'Python' 카테고리의 다른 글

[Python] 함수  (0) 2022.06.29
[Python] 반복문(while, for)  (0) 2022.06.27
[Python] 리스트, 튜플  (0) 2022.06.22
[Python] 조건문  (0) 2022.06.22
[Python] 연산자(산술,지수,복합,비교,멤버)  (0) 2022.06.15