wasup
Python) 파이썬 자료형 딕셔너리 (dict {}) 본문
Tip 도움말 구하기!
#자료형, 함수 등의 도움말!
#1. 변수명?, ?변수명, hel()
#2. type()함수
#3. dir()함수
2. 파이썬 자료형
2-1. 숫자형 : int/float/complex
2-2. 문자형 : str
2-3. 리스트 : list []
2-4. 튜플 : tuple ()
2-5. 딕셔너리 : dict {}
2-6. 셋 : set {}
2-5. 파이썬 딕셔너리 : dict {}
중괄호로 선언, key와 value을 한 쌍으로 갖는 자료형
Java에서 map과 동일한 유형
key는 중복 불가 value는 중복가능
key값은 mutable한 자료형은 올 수 없다.
즉, 수정할 수 있는 자료형은 key로 정의 불가.
a = {}
print(type(a), type({}))
print(dir(a))
<class 'dict'> <class 'dict'>
['__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']
a = {1:5, 2:100}
b = {(1, 2):'값1', '문자':'값2'}
#c = {[1, 2]:'값3'} #변경가능한 자료는 key로 불가
d = {1.5:'값4', 3.15:'PI'}
e = {True:'값5', False:'값6'}
print(a, b, d, e)
print(type(a), type(b), type(d), type(e))
{1: 5, 2: 100} {(1, 2): '값1', '문자': '값2'} {1.5: '값4', 3.15: 'PI'} {True: '값5', False: '값6'}
<class 'dict'> <class 'dict'> <class 'dict'> <class 'dict'>
#key중복불가. 하지만 에러는 안남.
a = {'k':100, 'y':200, 'k':1000}
print(a)
{'k': 1000, 'y': 200}
a = {1}
b = {1, 2, 3, 4, 5}
print(type(a)) #값이 하나면 set
print(type(b))
<class 'set'>
<class 'set'>
접근하기1
#접근하기
a = {1:90, 2:80, 3:98}
print(a[1]) #dick 1은 index가 아니라 key
print(a[1],a[2],a[3])
90
90 80 98
접근하기2
b = {'name':'진주', 'age':12}
print(b)
print(b['name'], b['age'])
{'name': '진주', 'age': 12}
진주 12
추가, 수정
b['addr'] = '송도'
print(b)
b['addr']='서울'
print(b)
{'name': '진주', 'age': 12, 'addr': '송도'}
{'name': '진주', 'age': 12, 'addr': '서울'}
b['func'] = print
print(b)
{'name': '진주', 'age': 12, 'addr': '서울', 'func': <built-in function print>}
관련함수
#관련함수
grade = {'홍길동':90, '홍길일':85, '홍진주':100}
print(grade.keys())
print(grade.values())
print(grade.items())
dict_keys(['홍길동', '홍길일', '홍진주'])
dict_values([90, 85, 100])
dict_items([('홍길동', 90), ('홍길일', 85), ('홍진주', 100)])
값이 없다면?
print(grade.get('홍진주'))
print(grade.get('홍진아')) #값이 없으면 None
#print(grade.('홍진아')) #예외발생
100
None
in
print('홍진주' in grade)
print('홍진아' in grade)
True
False
2-6. 파이썬 셋 : set {}
중복허용불가, 순서없음
set의 선언은 중괄호로 한다.()
집합관련연산
s1 = {1}
s2 = {1, 2, 3}
print(type(s1), type(s2))
print(dir(s1))
<class 'set'> <class 'set'>
['__and__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__iand__', '__init__', '__init_subclass__', '__ior__', '__isub__', '__iter__', '__ixor__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__or__', '__rand__', '__reduce__', '__reduce_ex__', '__repr__', '__ror__', '__rsub__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__xor__', 'add', 'clear', 'copy', 'difference', 'difference_update', 'discard', 'intersection', 'intersection_update', 'isdisjoint', 'issubset', 'issuperset', 'pop', 'remove', 'symmetric_difference', 'symmetric_difference_update', 'union', 'update']
'IT > Python' 카테고리의 다른 글
Python) 데이터분석 (0) | 2021.05.24 |
---|---|
Python) 파이썬 제어문 if! (0) | 2021.05.23 |
Python) 파이썬 자료형 튜플(tuple ()) (0) | 2021.05.21 |
Python) 파이썬 자료형 리스트 (list []) (0) | 2021.05.20 |
Python) 파이썬 기본문법 연습문제 (0) | 2021.05.19 |