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 |