파이썬/파이썬 입문 공부일지

파이썬 공부일지 15. 딕셔너리!

Tomitom 2022. 10. 13. 17:27
반응형

 

날씨가 갑자기 추워져서 옷을 어떻게 입어야할지 모르겠어요. 

두껍게 입으면 공부하면서 졸리고, 얇게 입으면 학원 가면서 졸리고…….

외투를 도톰하게 입고 나오니 이제 정말로 겨울 같네요. 

이번 겨울에는 멋지게 코딩할 수 있는 사람이 되어 있을까요. 

힘내봅니다……. 

 

오늘은 리스트에 이어 자료를 저장할 수 있는 딕셔너리에 대해서 공부해봅니다.

 

딕셔너리는 변수 = { } 의 형태로 사용합니다. 

변수 = {

     키 : 값,

     키 : 값

}

 

콜론을 기준으로 앞에 있는 것은 '키', 뒤에 있는 것은 값 value 이에요. 

값 : 자료형 무엇이든 올 수 있습니다. 

키 : 숫자, 불, 문자열 정도만 올 수 있습니다. 

-> 키로 쓸 수 있는 자료형은 모두 immitable  입니다. (원본을 훼손하지 않습니다. 원본을 바꿀 수 없다는 뜻이에요.)

 

리스트가 [1,2,3,4,5] -> 인덱스가 지정되는 것이라면 

딕셔너리에는 인덱스 개념이 없습니다.  대신 딕셔너리에서는 '키'가 인덱스의 개념을 대신합니다. 

딕셔너리는 이름을 붙여서 데이터를 관리한다고 보시면 돼요.

 

딕셔너리에 요소 두 개를 넣어보았어요.

 

실제로 사용할 값은 뒤에 있는 value값 이고, 키는 그 값에 이름을 붙인 것입니다. 

선언을 할때에는 키를 선언해서 값을 불러오죠. (사전에서 문자를 찾아 뜻을 보는 것과 같다고 생각하시면 됩니다.) 

 

 

딕셔너리에 있는 값을 출력합니다. 리스트처럼 딕셔너리 뒤에 대괄호 [ ]  를 입력하고 내부에 인덱스처럼 키를 입력합니다.  딕셔너리를 선언할 때에는  { } 이지만, 요소를 꺼낼 때에는 [ ] 으로 사용해야 합니다. 

 

 

값이 없는 키에는 오류가 뜹니다.

 

 

딕셔너리는 선언하는 형식이 [ ] 괄호인 리스트와 달리 { } 괄호를 사용하고

사용하는 형식은 리스트와 동일하게 [ ] 를 사용해요.

키 값을 문자열로 사용할 경우 " " 따옴표를 붙이지 않으면 NameError 라는 오류가 발생하니 주의해주세요!

 

요러케 만들어봅니다.

주의할 점 ! 값은 중복이 가능하지만 키는 중복이 불가능해요.

만약 중복을 해서 넣으면 딕셔너리의 값을 수정하게 됩니다. 

그럼 딕셔너리에 값 추가하고 수정하고 제거하는 걸 알아볼게요. 

 


1. 값 추가

 

딕셔너리에 값을 추가할 때엔 키의 값을 기반으로 입력합니다. 

 

딕셔너리[새로운 키] = 새로운 값

 

리스트에 요소를 추가할 때에는 리스트명.append(요소) 로 사용했다면 

딕셔너리는 딕셔너리변수[새로운키]="값" 으로 추가하는 거예요. 

 

 

2. 값 수정

 

딕셔너리에 이미 존재하고 있는 값을 새로운 값으로 넣으면 기존의 값을 새로운 값이 대치 됩니다. 

방법은 추가할 때랑 동일하게 하시면 돼요!

딕셔너리변수[원래있던키]="새로운값"

 

3. 값 제거 

딕셔너리 요소를 제거하는 것은 리스트와 동일하게 del 키워드를 사용합니다. 

특정 키를 지정하면 해당 요소가 제거됩니다. 

del 딕셔너리변수["키"]

 

 

그럼 이제 딕셔너리 와 함께 활용하는 방법들을 볼게요 

 

 

 


1. in 키워드 

 

딕셔너리에 있는 값을 찾을 때에는 in 키워드를 사용합니다. 

in 키워드 혹은 not in 코드는 키key 를 기준으로 확인할 수 있습니다. 

딕셔너리에 키가 있는지 없는지 확인할 수 있어요. 

 

사용자에게 검색할 키워드를 받고, 그 키가 존재하는지 확인하는 코드를 만들어볼게요. 

우선 딕셔너리를 만들어줍니다. 


dictionary = {
    "사람은" : "이상하고",
    "사랑은" : "모르겠어"
}

 

해당 키와 값이 연결되었다면 이제 input 함수로 사용자에게 값을 입력받아볼게요. 


key = input("접근하고자 하는 키: ")

 

이 값이 딕셔너리에 있는지를 확인하기 위해서 in 함수를 사용합니다. 


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

 

 

사람은 이상하고... 사랑은 모르겟어, 이예린 노래

 

그럼 값이 어떻게 나오는지 볼게요. 

사람은 이상하대요

 

in 함수를 사용해봤어요. 그럼 딕셔너리에 존재하지 않은 값에 대해서는 어떻게 대처하는지 확인해볼게요. 

 

 


2. get() 함수

 

get() 함수는 딕셔너리의 값을 추출하는 기능으로 딕셔너리[키] 와 같은 기능을 쓰지만, 

존재하지 않는 키에 접근할 경우 KeyError 를 발생시키는 것이 아니라 

None 을 출력합니다. (아무것도 없음) 

 

get 함수는 아무것도 안 뜹니다.

코딩에 이것이 더 깔끔해서 좋은 것일까 생각해보았을 때

함수를 하나라도 줄여서 코딩하는 것이 속도가 더 좋으므로 가급적이면 쓰지 않고 그냥 오류를 뜨는 편이 좋다고 하더라구요. 

 

 


 

3. for 반복문

 

이번에는 반복문과 조합해보겠습니다. 

 

for 키 변수 in 딕셔너리 : 

     코드 

 

딕셔너리 내부에 있는 키가 변수에 들어갑니다.

우선 직접 작성해보겠습니다.  딕셔너리를 열어서 자료를 작성합니다. 

dictionary = {  
    "개최일" : "2022년 10월 30일",
    "장소" : "내 집",
    "시간" : "18시",
    "왜" : "놀고 싶어서",
    "컨셉" : "할로윈파티"
}

 

이 자료를 반복문과 조합해볼게요. 

 

for key in dictionary :     -> 딕셔너리에 있는 자료들을 차례차례 반복해서 key로 저장할 거예요. 
    print(key,":", dictionary[key])   -> 차례대로 key 의 키값과 딕셔너리의 자료값이 출력되도록 해봅니다.   



 

이렇게 작성하면 결과값은 각각의 자료가 한줄로 맞물려서 입력이 되겠죠. 

 

 

 

여기까지 단어들을 정리하자면

 

딕셔너리 키값에 여러가지 자료들을 저장하는 자료형입니다. 
딕셔너리에 저장된 값에 접근할 때 사용합니다.
딕셔너리 안에 저장되어 있는 각각의 값을 의미합니다. 

 

예제를 활용해서 직접 문제들을 풀어보는 것이 도움이 많이 되는데요. 

우선 이론을 기재해놓고 예제와 예제 풀이는 따로 포스팅해서 저장해두려고 합니다.. 

점점 더 어려워지지만 ㅠㅜ 기죽지 않고 열심히 해볼게요! 

 

반응형