[파이썬] dictionary : 와 =

폼폼(YUNA AN)·2024년 12월 19일

사소한 발견

목록 보기
30/33
post-thumbnail

질문

왜 수정된 코드에서는 딕셔너리에 새로운 키와 밸류를 할당할 때 ':' 대신 '=' 를 쓰는거야?

답변

좋은 질문이에요! 코드를 작성하면서 혼동하기 쉬운 부분인데, 여기에서 :와 =의 차이를 이해하는 것이 중요합니다.

💡: vs =의 차이

1. :딕셔너리 리터럴에서 키-값 쌍을 정의할 때 사용:

**딕셔너리를 새로 생성**하거나 **딕셔너리 내부의 키-값 쌍을 지정할 때** 사용됩니다. 예를 들어:
my_dict = {
    "key": "value",  # 여기에서 ':'를 사용
    "status": "deficient"
}

-> 그니까 기존에 정해진 값들을 활용할 때 :를 쓰는 듯!

2. =는 값을 업데이트하거나 변수에 값을 할당할 때 사용:

**기존 딕셔너리의 값을 수정**하거나 **새 키를 추가할 때**는 `=`를 사용해야 합니다. 예를 들어:
my_dict["key"] = "new_value"  # 기존 키 "key"의 값을 업데이트
my_dict["new_key"] = "value"  # 새 키-값 쌍 추가

왜 수정된 코드에서는 =를 사용해야 하나?

수정된 코드에서는 이미 존재하는 딕셔너리(merged_result)를 업데이트하거나 새 키(status)를 추가하고 있습니다. 이 경우 딕셔너리의 특정 키에 값을 할당해야 하므로 =를 사용해야 합니다.

과거 코드와 현재 코드의 차이

과거 코드에서는 station_demands라는 리스트에 새 딕셔너리를 생성해서 추가하고 있었어요. 이때는 딕셔너리 리터럴을 사용했기 때문에 :를 사용했습니다:

station_demands.append({
    "station_id": row['station_id'],  # ':' 사용
    "stock": stock,
    "predicted_rental": predicted_rental,
    "status": "deficient"  # ':' 사용
})

수정된 코드에서는 이미 존재하는 딕셔너리(merged_result)의 값을 업데이트하고 있으므로 =를 사용해야 합니다:

merged_result[stationid]["status"] = "deficient"  # '=' 사용

요약

  • 딕셔너리 리터럴 생성: : 사용
new_dict = {"key": "value"}
  • 딕셔너리 값 업데이트: = 사용
existing_dict["key"] = "new_value"

정리

수정된 코드에서 =를 사용한 이유는, 이미 생성된 merged_result 딕셔너리새로운 키-값 쌍을 추가하거나 기존 값을 업데이트하고 있기 때문입니다.

profile
광고 도메인과 콘텐츠 기획의 전문성을 갖춘 데이터 분석가입니다.

0개의 댓글