본문 바로가기
Python/기본문법

dictionary란 (파이썬 자료구조)

by yororing 2024. 7. 25.

00 개요

  • 목적: python의 dictionary에 대해 정리하고자 함

 

01 dictionary란

1. 정의

  • '사전'
  • key(키) + value(값)로 이루어짐 (하나의 key 당 하나의 value 값만 부여 가능 → key 하나당 value 값 여러개 할당 불가능)
  • { } 사용
  • python에서의 dictionary는 다른 language의 map 또는 hashmap과 유사한 자료형, json이라는 자료형태와도 유사
  • key는 중복 불가, value는 다른 key에도 존재 가능
  • 가능한 key값: str 또는 int
  • 가능한 value값: str, int, list, tuple, dictionary, 등 다양한 데이터타입 할당 가능
  • key와 value로 이루어져 있다보니 순서의 의미가 없음 → index로 접근 불가
  • key로 value 검색 시 해시함수를 통해 index를 찾다보니 매우 빠른 속도 보장

1) list, tuple, dictionary 간 차이점 

data type list tuple dictionary
사용하는 괄호 [ ] ( ) { }
값 할당 a = [value, ...] a = (value, ...) a = {key:value, ...}
값 조회 a[index] a[index] a[key]

02 dictionary 생성하기

1) 선언하기 - 중괄호 { } 및 ,으로 나뉘어진 key:value 쌍

  • 변수에 딕셔너리 선언하는 방법
  • 중괄호 { } 안에 반점 , 으로 나뉘어진 key: value 쌍을 줘서 생성 가능
dict1 = {key1: value1, key2: value2, ...}

# 예시
dict1 = {'index': 1, 'fruits': ['apple', 'banana'], 3: 'three', ...}

2) dict comprehension 사용

dict1 = {}    # 빈 딕셔너리 생성
dict2 = {x: x+2 for x in range(3)}    # dict comprehension 사용

>>> print(dict1)
{}
>>> print(dict2)
{0:2, 1:3, 2:4}

3) dict() 함수 사용하기

dict1 = dict(**kwargs)
dict2 = dict(mapping, **kwargs)
dict3 = dict(iterable, **kwargs)

# 예시
dict() 					            # 빈 딕셔너리 생성
a = dict(one=1, two=2, three=3)                     # 키워드 인자
b = dict(zip(['one', 'two', 'three'], [1, 2, 3]))   # 매핑
c = dict([('two', 2), ('one', 1), ('three', 3)])    # iterable
d = dict({'three': 3, 'one': 1, 'two': 2})          # 매핑
e = dict({'one': 1, 'three': 3}, two=2)             # 혼합
>>> a == b == c == d == e
True

 

  • 매개변수:
    • keyword arguments:
      • 필수값 아님
      • As many keyword arguments you like, separated by comma: key = value, key = value ...
    • mapping:
      • 필수값 아님
    • iterable:
      • 필수값 아님

4) defaultdict() 사용하기

dict1 = defaultdict(dictionary_factory)

03 dictionary 사용하기

1) key값 및 value 값 조회

dict.keys()     # key값들 반환 ['key1', 'key2', ...]
dict.values()   # value값들 반환 ['value1', 'value2', ...]
dict.items()    # (key, value)값들 반환 [(key1, value1), (key2, value2), ,... ]

2) value 호출 방식

dic[key]
dic.get(key)

# 예시
>>> dic1 = {'이름': '홍길동', '나이': 25, '성별': '남'}
>>> print(dic1['나이'])
25
>>> print(dic1.get('나이'))
25

03 default

 

 

 

참조

  1.  
  2. (02 dictionary 생성하기 - 2) dict() 함수 사용하기) https://www.w3schools.com/python/ref_func_dict.asp
  3.  
  4.  

'Python > 기본문법' 카테고리의 다른 글

pass continue break 차이 (파이썬 문법)  (0) 2024.08.01
namedtuple (파이썬 자료형)  (0) 2024.07.31
@데코레이터 Decorator (파이썬)  (0) 2024.06.28
_ underscore (파이썬)  (0) 2024.06.28
os (운영체제 작업 모듈)  (1) 2024.06.18