해시 - 딕셔너리

이말감·2022년 2월 4일
0

Python

목록 보기
6/7

해시

: 임의의 키를 가진 데이터를 고정된 데이터의 크기로 변환시키는 것

  • 특정한 배열의 인덱스나 위치를 입력하고자 하는 데이터의 값을 이용해 저장하거나 찾을 수 있음

해시 사용

  • 리스트를 쓸 수 없을 때
    -> 인덱스 값을 숫자가 아닌 다른 값(문자열, 튜플)을 사용하려고 할 때 사용
  • 빠른 접근/탐색이 필요할 때
    -> 시간 복잡도가 O(1)
  • 집계가 필요할 때
    -> 해시와 collections 모듈의 Counter 클래스를 사용하면 빠르게 해결 가능

Dictionary

선언

dict1 = {}
dict2 = dict()
dog = {'name' : '강아지', 'weight' : 5, 'height' : 10}

원소 가져오기

  • [] 사용
dog = {'name' : '강아지', 'weight' : 5, 'height' : 10}
dog['name'] # 강아지
  • get 메소드 사용
dog = {'name' : '강아지', 'weight' : 5, 'height' : 10}
dog.get('name', '없음') # 강아지
# 딕셔너리에 해당 key가 없을 때 key error를 내지 않고 특정한 값을 가져온다.
# 딕셔너리.get(key, key가 없을 때 가져오는 특정한 값)

원소 넣기, 업데이트 하기

  • 값 수정
dog = {'name' : '강아지', 'weight' : 5, 'height' : 10}
dog['name'] = '고양이'
# dog = {'name' : '고양이', 'weight' : 5, 'height' : 10}
dog['height'] += 10
# dog = {'name' : '고양이', 'weight' : 5, 'height' : 20}
  • 값 업데이트
dog = {'name' : '강아지', 'weight' : 5, 'height' : 10}
dog['cute'] = '귀여움'
# dog = {'name' : '강아지', 'weight' : 5, 'height' : 10, 'cute' : '귀여움'}

삭제

  • del d[key]
    : 딕셔너리에 키가 없으면 keyError 발생
dog = {'name' : '강아지', 'weight' : 5, 'height' : 10}
del dog['cute'] # key error
del dog['weight'] 
dog = {'name' : '강아지', 'height' : 10}
  • pop(key[, default])
    : 키 값에 해당하는 value를 리턴
    -> 키가 없으면 두 번째 파라미터인 default 리턴
    -> default 설정하지 않으면 key error 발생
    -> 키가 있으면 대응하는 value 리턴
dog = {'name' : '강아지', 'weight' : 5, 'height' : 10}
dog.pop('cute') # key error
dog.pop('cute', '귀엽') # 귀엽
dog.pop('weight', '20') # 5
dog = {'name' : '강아지', 'height' : 10}

순회(for문)

  • key로만 순회
dog = {'name' : '강아지', 'weight' : 5, 'height' : 10}
for key in dog :
	print(key)
    # 이때 value를 찾고 싶다면 dog[key]
  • key-value 동시 순회
dog = {'name' : '강아지', 'weight' : 5, 'height' : 10}
for key, value in dog.items() :
	print(key, value)
    # key, value 둘 다 찾을 때는 items() 사용

in

dog = {'name' : '강아지', 'weight' : 5, 'height' : 10}
print('name' in dog) # True
print('name' in not dog) # False
profile
전 척척학사지만 말하는 감자에요

0개의 댓글