Study

[혼자 공부하는 파이썬] Chapter04 반복문 - 2.딕셔너리와 반복문

이웃비 2021. 4. 2. 12:58

 

**
스터디하면서 이미 알고 있는 부분들은 제외하고 기록하고 싶은 부분만 업로드하기 때문에 책 내용과 다를 수 있습니다

 

리스트와 딕셔너리의 차이

자료형 의미 가리키는 위치 선언 형식
리스트 인덱스를 기반으로 값을 저장 인덱스 변수=[]
딕셔너리 키를 기반으로 값을 저장 변수={}

 

구분 선언 형식 사용 예 틀린 예
리스트 list_a = [] list_a[1]  
딕셔너리 dict_a = {} dict_a["name"] dict_a{"name"}

 

딕셔너리의 요소에 접근하기

## 딕셔너리의 요소에 접근하기

# 딕셔너리를 선언합니다
dictionary = {
    "name" : "7D 건조 망고",
    "type" : "당절임",
    "ingredient" : ["망고", "설탕", "메타중야황산나트륨", "치자황색소"],
    "origin" : "필리핀" 
}

# 출력합니다
print("name:", dictionary["name"]) # name: 7D 건조 망고
print("type:", dictionary["type"]) # type: 당절임
print("ingredient:", dictionary["ingredient"]) # ingredient: ['망고', '설탕', '메타중야황산나트륨', '치자황색소']
print("origin:", dictionary["origin"]) # origin: 필리핀
print()

# 값을 변경합니다
dictionary["name"] = "8D 건조 망고"
print("name:", dictionary["name"]) # name: 8D 건조 망고
print()

# 리스트 안의 특정 값 출력 가능
print(dictionary["ingredient"][1]) # 설탕


## 딕셔너리의 문자열 키와 관련된 실수

dict_key = {
    name : "7D 건조 망고",
    type : "당절임"
}
'''
에러 발생 : 
Traceback (most recent call last):
  File "c:\Chapter04\dict01.py", line 30, in <module>
    name : "7D 건조 망고",
NameError: name 'name' is not defined
에러 이유 :
name을 정의하지 않아서. name을 "name"으로 정의해야한다. 
type은 type() 함수라는 기본 식별자가 있어서 오류를 발생시키지는 않지만,
print()하면 <class 'type'>: '당절임' 으로 나온다

'''


 

딕셔너리에 값 추가하기/제거하기

## 딕셔너리에 값 추가/제거하기

dictionary = {}

# 추가
dictionary["name"] = "새로운 이름"
print(dictionary["name"]) # 새로운 이름

# 제거
del dictionary["name"]
print(dictionary) # {}


 

딕셔너리 내부에 키가 있는지 확인하기

## 키가 존재하지 않을 때 None을 출력하는지 확인하기

# 딕셔너리를 선언합니다
dictionary = {
    "name" : "7D 건조 망고",
    "type" : "당절임",
    "ingredient" : ["망고", "설탕", "메타중야황산나트륨", "치자황색소"],
    "origin" : "필리핀" 
}

# 존재하지 않는 키에 접근해봄
value = dictionary.get("존재하지 않는 키")
print("값 :", value) # 값 : None

# None 확인 방법
if value == None: #None과 같은지 확인만 하면 됨
    print("존재하지 않는 키에 접근했었습니다")

** get() 함수는 딕셔너리[키] 와 같은 기능을 수행하지만, 존재하지 않는 키에 접근할 경우 KeyError를 발생시키지 않고 None을 출력

 


출처 : 윤인성혼자 공부하는 파이썬, 한빛미디어, 2021