본문으로 바로가기

[파이썬 강의] - 3.2 반복문(딕셔너리)

category 파이썬 2021. 2. 17. 18:57

딕셔너리


리스트와 같이 여러 개의 요소를 저장할 수 있다.

차이점이 있다면 리스트가 '인덱스' 기반으로 요소를 지정한는 반면, 딕셔너리(Dictionary)는 '키'를 기반으로 요소를 지정한다. 때문에 요소를 호출할 때 리스트보다 좀 더 효율적으로 요소를 호출할 수 있다.

리스트와 딕셔너리 비교
자료형 위치지정 선언형식
리스트 인덱스 변수=[]
딕셔너리 변수={}

 

 

딕셔너리 만들기·호출하기


중괄호{}로 '키:요소' 형태를 반점(,)으로 연결해서 만들며, 요소을 호출할 때에는 키를 기반으로 호출한다.

※ 요소를 여러개 넣을 때에는 요소를 대괄호[]로 씌워줘야 한다.

#예시
hagsig={
    "name":["tistory","hagsig"],
    "type":"blog"
}

print("hagsig :", hagsig)
print("hagsig[""name""] :", hagsig["name"])
print("hagsig[""name""][0] :", hagsig["name"][0])
print("hagsig[""name""][1] :", hagsig["name"][1])
print("hagsig[""type""] :", hagsig["type"])

#실행
hagsig : {'name': ['tistory', 'hagsig'], 'type': 'blog'}
hagsig[name] : ['tistory', 'hagsig']
hagsig[name][0] : tistory
hagsig[name][1] : hagsig
hagsig[type] : blog

 

 

딕셔너리 요소 변경하기


다음과 같은 방법으로 딕셔너리의 요소를 변경할 수 있다.

#예시
hagsig={
    "name":["tistory","hagsig"],
    "type":"blog"
}

print("수정 전 hagsig[""name""]) :",hagsig["name"])

hagsig["name"]=["security","hagsig"]
print("수정 후 hagsig[""name""]) :",hagsig["name"])


print("수정 전 hagsig[""type""]) :",hagsig["type"])

hagsig["type"]="python"
print("수정 후 hagsig[""type""]) :",hagsig["type"])

#실행
수정 전 hagsig[name]) : ['tistory', 'hagsig']
수정 후 hagsig[name]) : ['security', 'hagsig']
수정 전 hagsig[type]) : blog
수정 후 hagsig[type]) : python

 

 

딕셔너리 키·요소 추가하기


딕셔너리에 키·요소를 추가할 때는 다음과 같은 방식으로 입력하면 된다.

#예시
hagsig={
    "name":"hagsig",
    "type":"blog",
}

print("키·요소 추가하기 전 : ", hagsig)

hagsig["sns"]="tistory"
print("키·요소 추가한 이후 : ", hagsig)


#실행
값 추가하기 전 :  {'name': 'hagsig', 'type': 'blog'}
값 추가한 이후 :  {'name': 'hagsig', 'type': 'blog', 'sns': 'tistory'}

 

 

딕셔너리 키 제거하기


딕셔너리에 키를 제거할 때는 del을 사용한다.

#예시
hagsig={
    "name":"hagsig",
    "type":"blog",
    "sns":"tistory"
}

print("키 제거하기 전 : ", hagsig)

del hagsig["sns"]
print("키 제거한 이후 : ", hagsig)

#실행
키 제거하기 전 :  {'name': 'hagsig', 'type': 'blog', 'sns': 'tistory'}
키 제거한 이후 :  {'name': 'hagsig', 'type': 'blog'}​

 

 

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


리스트 내부에 값이 존재하는지 확인할 때 in 연산자를 사용했던 것처럼 딕셔너리도 같은 방식으로 존재여부를 확인할 수 있다.

#예시
hagsig={
    "name":["tistory","hagsig"],
    "type":"blog"
}

searchkey="sns"

if searchkey in hagsig:
    print(hagsig[searchkey])
else:
    print("존재하지 않는 키 입니다.")


#실행
존재하지 않는 키 입니다.

 

in 연산자 외에도 get() 함수를 이용하여 키가 존재하는지 확인할 수 있다.

#예시
hagsig={
    "name":["tistory","hagsig"],
    "type":"blog"
}

searchkey="sns"
vaule=hagsig.get(searchkey)

if vaule == None:
    print("존재하지 않는 키 입니다.")
else:
    print(hagsig[searchkey])


#실행
존재하지 않는 키 입니다.

 

 

키와 요소를 동시에 출력하기


리스트가 enumerate() 함수를 이용해 인덱스와 요소를 동시에 출력하였다면,

딕셔너리에서는 items() 함수를 사용해 키와 요소를 동시에 출력할 수 있다.

#예시1
hagsig={
    "name":["tistory","hagsig"],
    "type":"blog"
}

print("items() 결과 :", hagsig.items())

#실행
items 함수 결과 : dict_items([('name', ['tistory', 'hagsig']), ('type', 'blog')])

 

#예시2
hagsig={
    "name":["tistory","hagsig"],
    "type":"blog"
}

for key, value in hagsig.items():
    print("{} 키의 요소는 {} 입니다.".format(key, value))
    
#실행
name 키의 요소는 ['tistory', 'hagsig'] 입니다.
type 키의 요소는 blog 입니다.