본문 바로가기
개발/Python

[Python] 파이썬 딕셔너리

by zero_it 2023. 2. 28.
728x90

Dictionary

  • key와 value가 한 쌍이 되어 존재하는 형태의 자료구조
  • 각각의 원소를 구분짓게 해주는 key,그에 대응하는 값인 value
  • list가 대괄호라면, dictionary는 중괄호로 한데 묶어 정의 

 

딕셔너리 생성 및 원소 추가

# 딕셔너리 선언
score = {'제로' : 100, '엔시티':127, '데이식스' : 666 }

# 새로운 원소 추가
score['박박박'] = 888

print(score)
  • 중괄호 { } 로 dictionary 전체를 묶고, 'key' : value 쌍을 콤마로 이어 원소들을 선언
  • 새로운 원소를 추가하기 위해서는 딕셔너리명[key] = value와 같이 작성

 

 

key 값을 활용한 원소의 탐색

score = {'제로' : 100, '엔시티':127, '데이식스' : 666 }

if ('엔시티' in score) :
  print('검색 완료')

결과

  • list에서 in을 이용하여 원소의 존재 여부를 확인하였는데,
  • dictionary에서도 in을 이용하여 해당 key 값을 가지는 원소의 존재 여부를 확인할 수 있음.

 

 

key에 대응하는 value 찾기

score = {'제로' : 100, '엔시티':127, '데이식스' : 666 }

print(score['데이식스'])

결과 

666

 

  • dictionary에서 특정 key에 대응하는 value를 확인하려면 딕셔너리명[key]를 호출
  • 위와 같은 방법으로 특정 value에 대응하는 key를 찾을 수는 없음.

 

 

dictionary의 원소 삭제

score = {'제로' : 100, '엔시티':127, '데이식스' : 666 }

del(score['엔시티'])

print(score)

del

  • list의 del(리스트명[index])와 유사하게, dictionary에서는 del(딕셔너리명[key])로 원소 삭제
  • key값이 문자열 형태인 경우 따옴표를 포함해야 함에 유의

 

 

미리 정의한 dictionary에서 key값들만 살펴보고 싶을 때 

score = {'제로' : 100, '엔시티':127, '데이식스' : 666 }

for name in score.keys():
  print(name, '학생')

keys()

  • 딕셔너리명.keys()를 이용하면 이미 정의한 dictionary의 키 값들을 한번에 불러올 수 있음.
  • 문법적 특성상, for 반복문과 함께 사용되는 경우가 많다.
  • 딕셔너리명.values()를 이용하면 value 값들을 한번에 불러올 수 있다.

 

 

value값으로 key를 찾는 코드의 원리

 

score = {'제로' : 100, '엔시티':127, '데이식스' : 666 }

for name in score.keys() :
  if (score[name] >= 600) :
    print(name, '학생의 점수는 600점 이상입니다.')

  • key()를 이용해 키 값 전체를 불러올 수 있다는 점에서 착안
  • 각각의 키들을 순회하면서, 해당 키에 대응하는 값이 300이상인지 확인
  • value가 300 이상에 해당하는 경우 순회 중이던 키 값을 반환

 

  • 유용재 교수님의 컴퓨터프로그래밍2 강의자료를 참고하였습니다. 
728x90