(DataStructure & Algorithm) Dictionary

임경민·2023년 10월 2일
1
post-thumbnail

🔑Summarization


  • 딕셔너리(Dictionary)키(key)와 값(value)를 이용해서 자료를 관리하며, 중괄호 {}를 이용하여 선언하며, 키:값 의 형태로 아이템을 정의한다.
  • 딕셔너리이름[키(Key)] = 값(Value) 형태로 아이템을 추가, 변경할 수 있으며, del, pop()을 이용해 삭제할 수도 있다.
  • keys(), values()를 통해 딕셔너리의 전체 키와 값을 각각 조회할 수 있으며, items()를 통해 튜플 형태로 값을 조회할 수도 있다.

📗Contents


딕셔너리(Dictionary)

  • 키(key)와 값(value)를 이용해서 자료를 관리
    ※ 딕셔너리(Dictionary)는 인덱스(index)가 존재하지 않음
  • 키(key)값은 절대 중복되어서는 안 됨
  • 중괄호 {}를 이용하여 선언하며, 키:값 의 형태로 아이템을 정의
students = {'s1':'홍길동', 's2':'박찬호', 's3':'이용규'}
print(students)
print(type(students))
  • key와 value에는 숫자, 문자(열), 논리형 뿐만 아니라 컨테이너 자료형도 가능
students = {'s1':'홍길동', 's2':'박찬호', 's3':'이용규', 's4':['김박사','임석사']}
print(students)
print(type(students))
  • key값에 immutable(변경 불가) 값은 올 수 있지만, mutable(변경 가능) 값은 불가능
    ex) 리스트는 불가능, 튜플은 가능

  • 딕셔너리 조회 : 키(Key)를 이용하여 값(Value)을 조회
    • 존재하지 않는 키를 이용한 조회 시 에러(error) 발생

get() : 키(key)값을 이용하여 값(Value) 조회 가능. 키(key)에 해당하는 값이 없을 경우 None 출력

  • 딕셔너리 추가 : 딕셔너리이름[키(Key)] = 값(Value) 형태로 아이템을 추가
    • 추가하려는 키 값이 이미 존재하는 경우, 값이 변경된다.
myInfo = {}

myInfo['이름'] = '임예민'
myInfo['전공'] = '수학'
myInfo['메일'] = 'gg@gmail.com'
myInfo['학년'] = 3
myInfo['주소'] = 'Seoul, Kor'
myInfo['취미'] = ['농구', '게임']

print(myInfo)
  • 딕셔너리 수정 : 키(Key)를 이용해서 값(Value)를 수정
    • 딕셔너리이름[키(Key)] = 값(Value) 형태로 아이템을 수정
myInfo = {}

myInfo['이름'] = '임예민'
myInfo['전공'] = '수학'
myInfo['메일'] = 'gg@gmail.com'
myInfo['학년'] = 3
myInfo['주소'] = 'Seoul, Kor'
myInfo['취미'] = ['농구', '게임']

print(myInfo)

myInfo['메일'] = 'aa@gmail.com' # 메일 변경
  • keys()values()

    keys() : 전체 키 조회
    values() : 전체 값 조회
    items() : 튜플(Tuple) 형태로 값 조회

  • 딕셔너리 삭제 : del과 pop을 이용해서 item 삭제

    • del을 이용한 아이템 삭제
memInfo = {'이름':'임예민', '전공': '수학', '메일': 'gg@gmail.com', '학년': '1', '주소': 'seoul, kor', '취미': ['농구', '헬스']}

print(memInfo)
print()

del memInfo['이름']
print(memInfo)
print()

del memInfo['취미']
print(memInfo)
  • pop을 이용한 아이템 삭제
memInfo = {'이름':'임예민', '전공': '수학', '메일': 'gg@gmail.com', '학년': '1', '주소': 'seoul, kor', '취미': ['농구', '헬스']}

print(memInfo)
print()

returnValue = memInfo.pop('이름')
print(memInfo)
print(returnValue)
print()
  • 딕셔너리의 유용한 기능

    in : 키(key) 존재 유/무 판단 True or False

memInfo = {'이름':'임예민', '전공': '수학', '메일': 'gg@gmail.com', '학년': '1', '주소': 'seoul, kor', '취미': ['농구', '헬스']}

print('이름' in memInfo)
print('이름' not in memInfo)

len() : 딕셔너리 길이(아이템 갯수) 알 수 있음
clear() : 모든 아이템 삭제

0개의 댓글