본문 바로가기
Python/개념

Day 4-2. 컬렉션 타입 - 딕셔너리

by 사라리24 2024. 3. 14.
SMALL

 

 

1. 딕셔너리(Dictionary)

여러 가지 데이터 타입의 값을 저장할 수 있는, 변경 불가능(immutable)한 순서가 있는 컬렉션입니다.

리스트(list) 가 '인덱스를 기반으로 값을 저장하는 것' 이라면 딕셔너리(Dictionary)는 '키를 기반으로 값을 저장하는 것'입니다.

자료형 의미 가리키는 위치 선언 형식
리스트 인덱스를 기반으로 값을 저장 인덱스 변수 = [ ]
딕셔너리 키를 기반으로 값을 저장 변수 = { }

 

컬렉션 생성함수 특징 예시
리스트 list() 추가, 수정, 삭제 언제나 가능 a = [1,2,3]
튜플 tuple() 생성되고 나면 변경 불가능 a =(1,2,3)
세트 set() 중복된 값의 저장 불가능 a ={1,2,3}
딕셔너리 dict() 키 + 값으로 관리 a ={'age':25}

 

1-1. 생성

 

{ }로 생성하고  , 로 구분합니다.

 
  dic1 = {}
  print(dic1)
  print(type(dic1))
 
{}
<class 'dict'>

ㄴ 데이터를 넣지 않아도 생성 가능합니다.

 

dic = { 키 : 값 , 키 : 갑 ....}

 
  dic2 = {1:'김사과', 2:'반하나', 3:'오렌지', 4:'이메론'}
  print(dic2)
  print(type(dic2))
 
{1: '김사과', 2: '반하나', 3: '오렌지', 4: '이메론'}
<class 'dict'>

ㄴ 데이터를 넣지 않아도 생성 가능합니다.

 

  
  print(dic2[2])
  print(dic2[4])
 
반하나
이메론

ㄴ 키로 인데싱합니다.

  
   dic3 = {'no':1, 'userid':'apple', 'name':'김사과', 'hp':'010-1111-1111'}

  print(dic3)
  print(dic3['no'])
  print(dic3['userid'])
 
{'no': 1, 'userid': 'apple', 'name': '김사과', 'hp': '010-1111-1111'}
1
apple

ㄴ 키와 값은 숫자, 실수, 정수, 문자열 다 가능합니다.

 

!! 중요 !!

키 (key) 는 중복될 수 없습니다. set으로 정의되어 있습니다.

중복된 키(key)를 넣으면 값이 수정됩니다.

 

1-2. 메소드

 

len()

: 딕셔너리의 길이

 
  dic3 = {'no':1, 'userid':'apple', 'name':'김사과', 'hp':'010-1111-1111'}
  print(len(dic3))
 
4

 

 

keys()

: 딕셔너리의 모든 키를 반환합니다.

 
  dic3 = {'no':1, 'userid':'apple', 'name':'김사과', 'hp':'010-1111-1111'}
  print(dic3.keys())
 
{200, 100, 150}
{200, 50, 100, 150}

ㄴ 

 

 

vaules()

: 딕셔너리의 모든 값를 반환합니다.

  
  dic3 = {'no':1, 'userid':'apple', 'name':'김사과', 'hp':'010-1111-1111'}
  print(dic3.values())
 
dict_values([1, 'apple', '김사과', '010-1111-1111'])

 

 

 

 

items()

: 딕셔너리의 모든 키-값을 쌍 (튜플)으로 반환합니다.

  
 
  dic3 = {'no':1, 'userid':'apple', 'name':'김사과', 'hp':'010-1111-1111'}
  print(dic3.items())
 
dict_items([('no', 1), ('userid', 'apple'), ('name', '김사과'), ('hp', '010-1111-1111')])

 

 

 

get()

: 특정 키의 값을 반환. 만약 그 키가 딕셔너리에 없으면, None을 반환하는 메서드

  
 
 
  dic3 = {'no':1, 'userid':'apple', 'name':'김사과', 'hp':'010-1111-1111'}
 
  print(dic3.get('userid'))
  print(dic3.get('age')) # None
  print(dic3.get('age', '나이를 알 수 없음'))

  print(dic3.get('userid','아아디를 알 수 없음'))
 
apple
None
나이를 알 수 없음
apple

 

 

 

pop()

: 특정 키의 값을 제거하고 반환. 만약 그 키가 딕셔너리에 없으면, KeyError가 발생하는 메서드

  
  dic3 = {'no':1, 'userid':'apple', 'name':'김사과', 'hp':'010-1111-1111'}
 
  temp = dic3.pop('hp')
  print(dic3)
  print(temp)
  print(type(temp))
 
{'no': 1, 'userid': 'apple', 'name': '김사과'}
010-1111-1111
<class 'str'>

 ㄴ  값이 출력되고, 키와 값이 제거됨

 

 

 

1-3. 멤버십 테스트

in

: 딕셔너리에 특정 키가 있는지 확인합니다.

     
  dic3 = {'no':1, 'userid':'apple', 'name':'김사과', 'hp':'010-1111-1111'}
 
  print('hp' in dic3)
  print('age' in dic3)
 
True
False

 ㄴ 키만 비교할 수 있습니다.

값은 불가능합니다.

 

'Python > 개념' 카테고리의 다른 글

Day 4-4. 제어문 - 조건문  (0) 2024.03.14
Day 4-3. 파이썬 연산자  (0) 2024.03.14
Day 4-1. 컬렉션 타입 - 세트  (0) 2024.03.14
Day 3-2. 컬렉션 타입 - 튜플  (0) 2024.03.13
Day 3-1. 컬렉션 타입 - 리스트  (0) 2024.03.13