* 딕셔너리란?
사전형 데이터를 의미하며, key와 value를 1대1로 대응시킨 형태
=> 중괄호({ }) 사용
* 딕셔너리 생성 방법
name = {Key1:Value1, Key2:Value2, Key3:Value3, ...}
<예제1> 딕셔너리 key값 조회
dic = {"apple":"사과","python":"파이썬"} #딕셔너리 생성
for x in dic: #key값이 순차적으로 대입
print(x)
<출력결과>
apple
python
=> key 값만 순차적으로 대입되는 것을 알 수 있다.
<예제2> 딕셔너리 value값 조회
dic = {"apple":"사과","python":"파이썬"}
for x in dic: #key값을 하나씩 대입
print(dic[x]) #key값을 이용해서 dic의 value값을 조회
<출력결과>
사과
파이썬
=> key값이 순차적으로 x에 대입되면서 value값 조회
<예제3> 간단한 사전 만들기
dic={'apple':'사과','banana':'바나나','python':'파이썬','linux':'리눅스','computer':'컴퓨터'}
print("프로그램 끝내기 -> 'exit' 입력")
while(1): #무한반복
flag=0 #dic안에 입력받은 search값이 있는지 확인해주는 변수 (0=없음,1=있음)
search = input("단어를 입력하세요 : ")
if(search=='exit'): #exit입력시 종료
break
for i in dic.keys(): #i에 dic의 key값 순차대입
if (search==i): #입력받은 search와 i값이 같은가?
print(dic[i]) #key값에 맞는 value값 출력
flag=1 #dic안에 입력받은 search값이 있으니까 1로 변경
break #찾았으니 더이상 반복할 필요 없음
if(flag!=1): #반복문이 모두 끝난 후, flag 값이 1이 아닌가?
print("찾으려는 값이 없습니다.") #dic안에 search 값이 없음
<출력결과>
입력1 : apple -> 사과
입력2 : bus -> 찾으려는 값이 없습니다.
입력3 : exit -> 프로그램 종료
<예제4> 사전 : 단어 없으면 추가
dic={'apple':'사과','banana':'바나나','python':'파이썬','linux':'리눅스','computer':'컴퓨터'}
while(1):
a = input("찾을 단어 입력 : ")
if a in dic:
print("단어의 뜻 : %s" % dic[a])
else:
print("찾는 단어 없음")
b = input("입력한 단어의 뜻을 추가해주세요 : ")
dic[a] = b #dic에 a(key)의 값으로 b(value)값을 대칭
<출력결과>
입력1 : apple -> 사과
입력2 : bus -> 찾는 단어 없음, 입력한 단어의 뜻을 추가해주세요 :
입력3 : bus -> 버스
<예제5> get 메서드 활용
foods = {"떡볶이":"오뎅",
"짜장면":"단무지",
"라면":"김치",
"피자":"피클"}
while True:
find = input(str(list(foods.keys()))+"중 좋아하는 것은?(종료는 'exit')\n")
if find in foods:
print("%s과 궁합이 맞는 음식은 %s 입니다."%(find,foods.get(find)))
elif find=='exit':
print("프로그램 종료")
break
else:
print("그런 음식은 없습니다.")
<출력결과>
['떡볶이', '짜장면', '라면', '피자']중 좋아하는 것은?(종료는 'exit')
입력1 : 라면 -> 라면과 궁합이 맞는 음식은 김치 입니다.
입력2 : 닭갈비 -> 그런 음식은 없습니다.
입력3 : exit -> 프로그램 종료