딕셔너리로 정보 관리하기

in #krsuccess14 hours ago

키-값으로 똑똑하게 정리하기: 딕셔너리 첫걸음

리스트로 데이터 모으는 거, 했죠?
값들이 한 줄로 쭉 있을 때는 리스트가 딱 편한데, 사실 “찾기”가 자꾸 발목 잡힐 때가 있어요.

예를 들면 이런 상황이요.

  • 학생 이름으로 성적을 빠르게 찾아야 한다
  • 상품 코드로 가격을 바로 꺼내야 한다
  • 어떤 정보를 “키”로 딱 찝어서 관리하고 싶다

이럴 때 저는 보통… 리스트를 한참 돌리다가(삽질 모드) 멘붕이 오거든요.
그리고 그때 생각합니다. “아, 딕셔너리 써야지” 😅

geralt


딕셔너리는 뭐냐면요? (키-값 한 쌍)

딕셔너리(dict)는 키(key)값(value)으로 데이터를 담는 자료형이에요.

  • 키: 조회할 기준 (예: 이름, id, 코드)
  • 값: 그 키에 연결된 내용 (예: 성적, 가격)

즉, 이런 느낌이죠.

data = {
  "철수": 95,
  "영희": 88,
}

여기서 "철수"가 키고, 95가 값이에요.
나중에 "철수"로 바로 성적을 가져오면 끝!

keyvalue


딕셔너리 만들고 값 꺼내기

제가 가장 먼저 써보는 건 이거예요. “일단 꺼내지나?” 테스트 😄

scores = {
    "철수": 95,
    "영희": 88,
    "민수": 73
}

print(scores["철수"])  # 95

아, 근데 여기서 자주 하는 실수!
없는 키로 조회하면 에러가 나요.

print(scores["짱구"])  # KeyError 발생!

처음엔 저도 “왜 안 되지?” 하고 한참 뚫어보곤 했는데… 솔직히 말하면 그냥 키를 잘못 적은 거더라구요.
그럼 이렇게 안전하게 처리하면 좀 편해져요.

print(scores.get("짱구", "없어요"))  # '없어요'
  • scores.get(키) : 있으면 값을 주고
  • 없으면 기본값(두 번째 인자)을 줘요

geralt


값 추가하고 수정하기 (딕셔너리는 살아있어요)

딕셔너리는 추가도 되고 수정도 돼요.

1) 값 추가

scores["지민"] = 80
print(scores)

2) 값 수정 (이미 있으면 덮어씀)

scores["영희"] = 90
print(scores)

여기서 포인트는요, 같은 키가 있으면 새 값으로 교체된다는 거!
처음에 저는 “추가인 줄 알았는데 왜 바뀌지?” 했던 적이 있어요.
(그때 “내가 뭘 덮어썼지?” 하고 멍하니 화면만 보게 됐음… 유머로 넘기기 😅)


딕셔너리 주요 기능들 (쓸만한 것들만 딱!)

키 목록, 값 목록 보기

print(scores.keys())   # 키만
print(scores.values()) # 값만

키-값 쌍 전체 보기

print(scores.items())  # (키, 값) 형태로 전체

Boskampi


반복문으로 딕셔너리 다루기

딕셔너리는 for로 순회할 수도 있어요.

for name, score in scores.items():
    print(name, score)

이러면 깔끔하죠?
리스트 돌리면서 조건 걸던 것보다 보통 더 직관적이에요.


리스트랑 딕셔너리는 언제 쓰면 좋을까?

제가 나름 기준을 정해두는 편이에요.

  • 리스트:
    “그냥 순서대로 쭉 모아둘 때”, “여러 항목을 같은 형태로 다룰 때”
  • 딕셔너리:
    “특정 기준(키)으로 바로 찾아야 할 때”, “정보를 이름표처럼 붙여서 관리할 때”

예를 들어,
학생 성적을 “학번”으로 바로 조회해야 하면 딕셔너리 너무 좋고요,
날짜별 기록을 “시간 순서”대로 계속 쌓고 싶으면 리스트가 편해요.


다음으로 문자열 다루기로 넘어가기

자, 이제 딕셔너리에 익숙해졌으니 다음 단계가 좀 재밌어요.
딕셔너리의 키나 값을 다루다 보면 결국…

  • 문자열을 어떻게 다뤄야 하는지
  • 공백/대소문자/부분 문자열 같은 것들을 어떻게 다룰지
  • 입력받은 걸 키로 써도 되는 형태로 정리할지

이런 게 계속 등장하거든요.

geralt

그래서 다음 포스트에서는 3-3. 문자열 다루기로 넘어가겠습니다!
솔직히 말하면 문자열은 “별거 아닌 것 같은데” 자주 막히는 구간이라…
이거 제대로 잡아두면 앞으로 훨씬 편해져요. 음… 진짜예요.

geralt


미니 체크 (오늘 끝내기)

  • 딕셔너리는 키-값으로 저장한다
  • dict[key]로 조회 가능
  • 없는 키는 get을 쓰면 안전하다
  • items()로 순회하면 편하다

다음 글에서 문자열을 손에 익히고, 다시 딕셔너리로 붙여서
“입력 → 정리 → 저장 → 조회” 흐름까지 자연스럽게 이어가볼게요!

Coin Marketplace

STEEM 0.06
TRX 0.32
JST 0.070
BTC 71886.09
ETH 2207.50
USDT 1.00
SBD 0.49