deda
Deda의 데이터 디자인
deda
전체 방문자
오늘
어제
  • 분류 전체보기 (121)
    • Python (27)
      • Python 기초 (17)
      • Python 데이터분석 (10)
    • SQL (9)
    • Coding test (54)
      • Python 기초문제 (45)
      • LeetCode (9)
    • BigData (2)
    • ZeroBase (3)
    • UX (0)
    • Business Review (1)
    • 통계 & 수학 (17)
      • 통계학 (14)
      • 수학 (3)
    • 스터디 (6)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • pandas
  • 빅데이터
  • 계산기
  • 미니콘다
  • 소인수분해
  • 기초수학
  • 릿코드
  • 부트캠프
  • 마이데이터
  • 제로베이스
  • 데이터분석가
  • 계차수열
  • 등비수열
  • 등차수열
  • 최소공배수
  • 데이터엔지니어
  • 군수열
  • 통계
  • BMI
  • 팩토리얼
  • SQL
  • 함수
  • 네카라쿠배
  • 프로그래밍
  • 코딩
  • 파이썬
  • 데이터사이언티스트
  • 모듈
  • 데이터분석
  • matplotlib

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
deda

Deda의 데이터 디자인

[파이썬 기초] 딕셔너리(Dictionary)
Python/Python 기초

[파이썬 기초] 딕셔너리(Dictionary)

2022. 5. 4. 12:48

🔍  딕셔너리(Dictionary)

- key와 value를 이용하여 자료를 관리하며, {} 로 선언한다.

- key와 value에는 숫자, 문자(열), 논리형 뿐만 아니라 컨테이너 자료형도 올 수있다.

- 단 key에 immutable(변경불가)값은 올 수 있지만, mutable 값은 올 수 없다.

students = {'s1':'김형식', 's2':'김종국', 's3':'박중호', 's4':'유재석', 's5':'강호동' }

cf. immutable & mutable

immutable : 수정 불가능한 객체.         ex) 정수, 실수, 문자열, 튜플

mutable : 수정 가능한 객체.             ex) 리스트와 딕셔너리


 

🗝 딕셔너리 조회

- key를 이용하여 value를 조회

- 존재하지 않은 키로 조회 시 에러 발생

students = {'s1':'김형식', 's2':'김종국', 's3':'박중호', 's4':'유재석', 's5':'강호동' }
print(students['s1'])          →        '김형식'

 

1) get()

- get()함수를 이용하여 value 조회 가능

- get()은 key 가 없어도 에러가 나지 않는다.

students = {'s1':'김형식', 's2':'김종국', 's3':'박중호', 's4':'유재석', 's5':'강호동' }
students.get('s4')          →        '유재석'
students.get('s7')          →         None

 

2) keys()

- key만 뽑아 볼 수 있다.

- 리스트와 비슷한 구조(iterable).  타입은 'dict_keys' 

students = {'s1':'김형식', 's2':'김종국', 's3':'박중호', 's4':'유재석', 's5':'강호동' }
ks = students.keys()      

→ dict_keys(['s1', 's2', 's3', 's4', 's5'])

 

3) values()

- value만 가져올 수 있다.

students = {'s1':'김형식', 's2':'김종국', 's3':'박중호', 's4':'유재석', 's5':'강호동' }
vs = students.values()     

→ dict_values(['김형식', '김종국', '박중호', '유재석', '강호동'])

 

4) items()

- 하나하나의 아이템(key, value)이 튜플로 반환된다.

students = {'s1':'김형식', 's2':'김종국', 's3':'박중호', 's4':'유재석', 's5':'강호동' }
items = students.items() 

→ dict_items([('s1', '김형식'), ('s2', '김종국'), ('s3', '박중호'), ('s4', '유재석'), ('s5', '강호동')])

 

tip) list()를 사용하면 list로 변환할 수 있다.

ks = list(ks)
vs = lsit(vs)
items = list(items)  → items : list  /  item(key&value) : tuple

 

5) for문을 이용한 조회

- for문을 이용하여 전체 딕셔너리의 key와 value 조회가 가능하다.

- 가장 많이 쓰임

students = {'s1':'김형식', 's2':'김종국', 's3':'박중호', 's4':'유재석', 's5':'강호동' }

for key in students.keys():
    print(f'{key}:{students[key]}')
    
→ s1:김형식  s2:김종국  s3:박중호  s4:유재석  s5:강호동

 

🗝 딕셔너리 추가

- dic[key] = value 의 형태로 추가 가능

myStudent = {}
myStudent['name'] = 'david'    →    myStudent = {'name':'david'}
factoDic = {}

for i in range(11):
    if i == 0:
        factoDic[i] = 1
    else:
        for j in range(1,i+1):
            factoDic[i] = factoDic[i-1]*j
print(f'factoDic = {factoDic}')

tip) key 값이 같을 경우, 아이템이 변경될 수 있다.


 

🗝 딕셔너리 수정

- dic[key] = value 의 형태로 수정 가능

myStudent = {}
myStudent['name'] = 'david'    →    myStudent = {'name':'david'}
myStudent['name'] = 'kevin'    →    myStudent = {'name':'kevin'}

 

 

[딕셔너리] BMI 계산기

🔍  문제 하루에 몸무게가(kg)와 신장(m)가 각각 -0.5kg, +0.002씩 변한다고 할 때, 45일 후의 몸무게와 BMI 값을 출력하는 프로그램 생성 myBodyInfo = {'이름':'david', '몸무게':85, '신장':1.6} 🗝 사용함수..

designingdata.tistory.com


🗝 딕셔너리 삭제

1) del

- del과 key를 이용하여 item 삭제 가능

scores = {'kor':88, 'eng':59, 'mat':85, 'sci':57, 'his':82}

delScore = ['kor','sci']

for item in delScore:
    if item in scores.keys():
        del scores[item]

 

2) pop()

- pop()과 key를 이용하여 item 삭제 가능

- del과는 달리 pop()는 함수이기에 value값을 반환할 수 있다.

students = {'s1':'김형식', 's2':'김종국', 's3':'박중호', 's4':'유재석', 's5':'강호동' }

returnD = students.pop('s1')
    
students = {'s2':'김종국', 's3':'박중호', 's4':'유재석', 's5':'강호동' }
returnD = '김형식'
scores = {'kor':88, 'eng':59, 'mat':85, 'sci':57, 'his':82}

minScore = 100; maxScore = 0
minScoresKey = ""; maxScoresKey = ""
fData = {}

for key in scores.keys():
    if scores[key] < minScore:
        minScore = scores[key]
        minScoresKey = key
    
    if scores[key] > maxScore:
        maxScore = scores[key]
        maxScoresKey = key

fData[minScoresKey] = scores.pop(minScoresKey)
fData[maxScoresKey] = scores.pop(maxScoresKey)

print(scores)
print(fData)

 

🗝 그 외 기능들

1) in, not in

- key의 존재 유무 판단. True/False로 반환

 

2) len()

- 딕셔너리의 길이(아이템 개수)를 알 수 있다.

 

3) clear

- 딕셔너리 안의 모든 아이템 삭제

'Python > Python 기초' 카테고리의 다른 글

[파이썬 기초] 알고리즘 - 정렬  (0) 2022.05.06
[파이썬 기초] 알고리즘 - 검색,순위  (0) 2022.05.06
[파이썬 기초] 튜플(Tuple)  (0) 2022.05.03
[파이썬 기초] 리스트(list)  (0) 2022.05.02
[파이썬 기초] return과 print의 차이  (0) 2022.04.30
    'Python/Python 기초' 카테고리의 다른 글
    • [파이썬 기초] 알고리즘 - 정렬
    • [파이썬 기초] 알고리즘 - 검색,순위
    • [파이썬 기초] 튜플(Tuple)
    • [파이썬 기초] 리스트(list)
    deda
    deda
    데이터 분석 / 파이썬 / UX / 정량리서치

    티스토리툴바