[Python] 데이터 타입(dictionary, 사전)

·2024년 4월 28일
0

Python

목록 보기
7/8
post-thumbnail

개념

Dictionary (사전, 딕셔너리)

  • 키(key)와 값(value)의 쌍으로 데이터 하나를 표현
  • {} 안에 키와 값을 ' : ' 으로 구분해서 하나의 데이터를 작성하고, 여러 데이터는 쉼표 ( , )로 연결
  • 형식: {key1: value 1, key2: value2, key3: value3, ...}

사전(dict)의 생성

dict 생성

  • 성별이 여성, 나이 30세, 이름이 mina인 사람의 데이터를 딕셔너리 데이터로 생성해 보세요.
>>> person = {'sex' : 'female', 'age': 30, 'name' : 'mina'}
>>> print(person)
>>> print(type(person))

{'sex': 'female', 'age': 30, 'name': 'mina'}
<class 'dict'>
  • 딕셔너리 person의 성별을 출력해 보세요.
>>> person['sex']
female
  • 미나의 나이를 출력해 보세요.
person['age']
30

데이터 추가

  • 본인의 이름 데이터를 추가하세요.
>>> myongji_hs = {}
>>> type(myongji_hs)

>>> myongji_hs['name'] = 'hong'
>>> print(myongji_hs)

{'name': 'hong'}
  • 본인의 학년을 추가하세요.
>>> myongji_hs['scholol_year'] = 5

>>> print(myongji_hs)

{'name': 'hong', 'scholol_year': 5}
  • 본인의 반 번호를 추가하세요.
>>> myongji_hs['class_no'] = 10
>>> print(myongji_hs)

{'name': 'hong', 'scholol_year': 5, 'class_no': 10}

사전의 삭제

  • 본인의 학년 데이터를 삭제하세요.
>>> del myongji_hs['scholol_year']
>>> print(myongji_hs)
3]

{'name': 'hong', 'class_no': 10}

사전의 장점

  • 학생 A의 시험 성적은 99, B는 91, C는 83, D는 100점일 때, 성적을 딕셔너리로 저장하세요.
>>> results = {'A': 99, 'B': 91, 'C': 83, 'D': 100}
>>> type(results)
dict
  • 학생 c의 점수를 출력하세요.
>>> results['c']
83

중복 key의 값

  • 본인의 이름 포함 옆 자리에 있는 총 3명의 학생 이름을 딕셔너리에 저장하세요.
>>> name3 = {'name': ['A', 'B', 'C']}
>>> print(name3)

{'name': ['A', 'B', 'C']}

함수 (딕셔너리에 사용하는 명령어)

  • keys 함수
    : 전체 item 중 key에 해당하는 부분만 따로 모아 list 타입으로 만들어주는 함수.
>>> a = {'gender': 'Female', 'age' : 30, 'name': 'Kristian'}
# a 딕셔너리의 keys만 출력합니다.
>>> list(a.keys())  
['gender', 'age', 'name']
  • value 함수
    : ㅇㄹㄴㄹㄴㅇ
>>> list(a.values())
['Female', 30, 'Kristian']
  • item 함수
>>> a.items()
dict_items([('gender', 'Female'), ('age', 30), ('name', 'Kristian')])
  • clear 함수
    : 모든 항목(item) 삭제
>>> a.clear()
>>> print(a)
{}
  • get 함수
    : value 출력
>>> a = {'gender': 'Female', 'age' : 30, 'name': 'Kristian'}
>>> a.get('gender')
Female
  • 변수에 key 확인
>>> 'gender' in a
True
>>>'weight' in a #없는 key
False

문제

1번

  • DS 이름의 빈 딕셔너리를 생성
>>> ds = {}
>>> type(ds)

2번

  • 표의 이름과 가격을 딕셔너리로 구성
>>> icecream = {'메로나': 1000, '폴라포': 1200, '빵빠레': 1800}
>>> print(icecream)
{'메로나': 1000, '폴라포': 1200, '빵빠레': 1800}
  • icecream에 아래 아리스크림 가격 정보를 추가 ( 죠스바 1200, 월드콘 1500)
>>> icecream ['죠스바'] = 1200
>>> icecream['월드콘'] = 1500

>>> print(icecream)
{'메로나': 1000, '폴라포': 1200, '빵빠레': 1800, '죠스바': 1200, '월드콘': 1500}
  • icecream을 사용하여 메로나 가격 출력 (ex. 메로나 가격: 1000)
>>> name = '메로나'
>>> print(f'{name} 가격:' , icecream[name])

메로나 가격: 1000
  • 메로나 가격을 1200으로 수정합니다.
>>> icecream['메로나'] = 1200
>>> print(icecream)

{'폴라포': 1200, '빵빠레': 1800, '죠스바': 1200, '월드콘': 1500, '메로나': 1200}
  • 딕셔너리에서 메로나를 삭제
>>> icecream.pop('메로나')
>>> print(icecream)

{'폴라포': 1200, '빵빠레': 1800, '죠스바': 1200, '월드콘': 1500}

3번

  • 표에서 이름을 key로, [가격, 재고] 리스트를 value로 저장. (이름은 inventory로 지정)
>>> inventory = {'메로나': [300, 20], '비비빅': [400, 3], '죠스바': [250, 100]}
  • inventory에서 메로나의 가격을 화면에 출력 (ex. 300원)
>>> print(inventory['메로나'] [0], '원')

300
  • inventory에서 메로나의 재고를 화면에 출력 (ex. 20개)
>>> print(inventory['메로나'] [1], '개')

20
  • inventory에 표의 데이터를 추가
>>> inventory['월드콘'] = [500, 7]
>>> print(inventory)

{'메로나': [300, 20], '비비빅': [400, 3], '죠스바': [250, 100], '월드콘': [500, 7]}

실습 링크

https://colab.research.google.com/drive/1xg0SpT8_7cbhGCjsGXHlgrep3jdEOCrA?usp=sharing

profile
열심히 하는 나를 위한 기록

0개의 댓글