파이썬의 딕셔너리는 키-값 쌍을 저장하는 변경 가능한(mutable) 컬렉션이다.
dic1 = {} #빈 딕셔너리를 생성
print(dic1)
print(type(dic1))
🖥️예제
dic2 = {1:'김사과', 2:'반하나', 3:'오렌지', 4:'이메론'}
print(dic2)
print(dic2[1])
print(dic2[3])
딕셔너리는 변경 가능합니다. 따라서, 딕셔너리에 키-값 쌍을 추가하거나 제거하거나, 기존의 키의 값을 변경할 수 있습니다.
🖥️예제
dic1 = {1:'apple'}
print(dic1)
dic1[100] = 'orange'
print(dic1)
dic1[50] = 'melon'
print(dic1)
del dic1[1]
print(dic1)
print(type(dic1))
dic3 = {'no':'1','userId':'appele', 'name':'김사과', 'hp':'010-1111-1111'}
print(dic3)
print(dic3['no'])
print(dic3['name'])
딕셔너리는 키로 값을 찾아낼 수 있다.
딕셔너리의 키는 변경 불가능한(immutable) 타입이어야 한다. 예를 들어, 문자열, 정수, 튜플은 딕셔너리의 키로 사용할 수 있지만, 리스트는 딕셔너리의 키로 사용할 수 없다. 하지만 딕셔너리의 값은 어떤 타입이든 상관없다.
dic1 = {'no':1, 'userid':'apple', 'name':'김사과', 'hp':'010-1111-1111'}
dic1['no'] = 10
print(dic1)
dic1['점수'] = [90, 100, 50]
print(dic1)
dic1[(1, 2, 3)] = ('🍔','🍕','🍟')
print(dic1)
# dic1[[1, 2, 3]] = ['🍎', '🍓', '🍒']
# print(dic1)
dic1['과일'] = {'사과':'🍎', '딸기':'🍓', '앵두':'🍒'}
print(dic1)
딕셔너리 키는 변경할 수 없다.
🖥️예제
dic1 = {'no':1, 'userid':'apple', 'name':'김사과', 'hp':'010-1111-1111'}
# len(): 딕셔너리의 길이(키-값 쌍의 개수)를 구할 수 있는 함
print(len(dic1))
🖥️예제
dic1 = {'no':1, 'userid':'apple', 'name':'김사과', 'hp':'010-1111-1111'}
# keys(): 딕셔너리의 모든 키를 반환하는 메서드
print(dic1.keys()) # 키들을 모아놓은 리스트
🖥️예제
dic1 = {'no':1, 'userid':'apple', 'name':'김사과', 'hp':'010-1111-1111'}
# values(): 딕셔너리의 모든 값을 반환하는 메서드
print(dic1.values())
🖥️예제
dic1 = {'no':1, 'userid':'apple', 'name':'김사과', 'hp':'010-1111-1111'}
print(dic1.items())
🖥️예제
dic1 = {'no':1, 'userid':'apple', 'name':'김사과', 'hp':'010-1111-1111'}
print(dic1['userid'])
# print(dic1['age']) #오류
print(dic1.get('userid'))
print(dic1.get('age')) #None
print(dic1.get('age','나이를 알 수 없음')) #없을 경우 대체 값을 출력할 수 있음
dic1['age'] dic1 딕셔너리에 해당 키가 없기 때문에 오류가 발생한다.
get() 메소드는 해당 키가 없으면 오류가 발생하지 않고 None 값으로 출력된다.
KeyError
가 발생하는 메서드🖥️예제
dic1 = {'no':1, 'userid':'apple', 'name':'김사과', 'hp':'010-1111-1111'}
print(dic1.pop('hp'))
print(dic1)
# print(dic.pop('age')) #NameError: name 'dic' is not defined
in 연산자를 사용하여 딕셔너리에 특정 키가 있는지 확인할 수 있다.
🖥️예제
dic1 = {'no':1, 'userid':'apple', 'name':'김사과', 'hp':'010-1111-1111'}
print('hp' in dic1)
print('age' in dic1)