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:
- 필수값 아님
- keyword arguments:
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
참조
- (02 dictionary 생성하기 - 2) dict() 함수 사용하기) https://www.w3schools.com/python/ref_func_dict.asp
'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 |