안녕하세요 모닝수잔입니다 :)

 

기존에 계속 파이썬 자료형에 대해서 다뤄왔는데 오늘은 "딕셔너리 자료형"에 대해 포스팅해보겠습니다.

 

 

딕셔너리(Dictionary) ▶ 말그대로 사전이라는 뜻인데요, 우리가 사전을 어떻게 찾나요? 맞습니다. 바로 색인을 통해서 찾죠? 만약에 apple이라는 단어를 찾는다면 a 섹션에서 단어를 찾을겁니다. 이처럼 딕셔너리는 key값을 가지고 value값을 찾는 형식의 자료형을 말합니다.

 

 


딕셔너리는 Key:Value 1쌍으로 이루어져 있다.

{Key1:Value1, Key2:Value2, Key3:Value3}

 

딕셔너리의 특징은 두 가지가 있는데요, 첫번째는 딕셔너리의 형식은 Key와 Value가 1쌍을 이룬다는 점입니다. 예를 들어, {수잔:박, 데이비드:윤, 케빈:서}라는 딕셔너리가 있다고 합시다. 여기에서 수잔, 데이비드, 케빈은 모두 무엇인가요? 그렇죠, Key가 됩니다. 박, 윤, 서는 자연스럽게 Value가 되겠군요? 콜론(:)을 기준으로 왼쪽은 Key, 오른쪽은 Value인 1쌍 형식으로 딕셔너리는 Key를 통해서 Value를 가져옵니다. 수잔을 부르면 박을 가져오고, 데이비드를 부르면 윤을 가져오고, 케빈을 부르면 서를 가져오는거죠.

 

 


딕셔너리는 중괄호{} 안에 들어있다.

{Key1:Value1, Key2:Value2, Key3:Value3}

 

두번째는 딕셔너리는 중괄호{} 안에 들어있다는 점입니다. 리스트는 대괄호[], 튜플은 소괄호()에 들어있는 것처럼 어디에 들어있는지에 따라서도 자료형의 종류를 파악할 수 있답니다. 그럼 딕셔너리 자료형의 특징 두가지를 살펴봤으니, 이제 그 활용 방법을 좀 더 자세히 살펴볼까요?

 

 

위에서 예시로 들었던 이름(Last Name):성(First Name) 조합의 쌍들을 dic이라는 딕셔너리 자료형으로 만들어보겠습니다. 이름과 성은 문자열 자료형이기 때문에 쌍따옴표"" 안에 넣어줍니다. dic ={"수잔":"박", "데이비드":"윤", "케빈":"서"}가 되겠네요. 그렇다면, 이제 "수잔"의 성을 알고 싶을 때 어떻게 추출할 수 있을까요?

print(dic["수잔"])

 

아래 화면 빨간칸을 보시면 "dic이라는 딕셔너리에서 "수잔"이라는 Key값을 찾고, 그 Key의 Value를 가져와줘"라는 뜻이 바로 print(dic["수잔"])이 됩니다. 결과 값은 정확하게 "박"으로 출력되었죠? 제가 수잔박이니까요 :)

 

※ 위에서 언급된 방법 외에도 get함수를 사용해서 dic.get("수잔")으로도 "박"이라는 값을 출력할 수 있답니다.

 

 

이제 딕셔너리 자료형에서 Value를 추출하려면 Key를 알아야한다는 사실을 알게되었습니다. 그렇다면 딕셔너리에 Key:Value 쌍을 추가하거나 삭제할 수도 있을까요? 

 

dic["크리스티나"] = "배"

 

물론 가능합니다. dic이라는 딕셔너리에 "크리스티나":"배"라는 쌍을 추가해보겠습니다. 아주 간단한데요, dic[Key] = Value 형식으로 넣어주시면 되는데 dic["크리스티나"] = "배"가 됩니다. 풀어서 설명해보면 dic이라는 딕셔너리에 "크리스티나"를 Key로 갖는 Value "배"를 넣어줘라는 뜻이 됩니다. 실제로 아래 화면 빨간칸 5, 6번 라인의 결과 값이 {"수잔":"박", "데이비드":"윤", "케빈":"서", "크리스티나":"배"}라고 출력되었습니다.

 

 

※ 중복된 Key 값

딕셔너리에서는 Key를 통해 해당 Key와 쌍을 이루는 Value를 불러올 수 있기 때문에 Key가 매우 중요한 역할을 합니다. 같은 이유로 Key는 고유한 값이 되어야만 하고 중복될 수 없는데요, 하나의 딕셔너리에서 중복되는 Key를 사용하면 어떻게 될까요? 그렇죠, 가장 마지막 Key만 유효하고 이전의 중복된 Key는 모두 무시됩니다. 아래 화면 7, 8번 라인을 보면 "크리스티나"라는 Key에 "배"와 "최"라는 2개의 Value를 부여했습니다. 여기에서 dic["크리스티나"]를 출력하면 "배"를 가져와야하는지 "최"를 가져와야하는건지 파이썬은 혼동이 오겠죠? 그래서 이전의 중복된 Value인 "배"는 무시하고 "최"를 가져오게 됩니다. 결과값에서 2번째 라인을 보시면 {"수잔":"박", "데이비드":"윤", "케빈":"서", "크리스티나":"최"}라고 출력되었죠.

 

 

이번에는 dic이라는 딕셔너리에서 "수잔":"박"이라는 쌍을 삭제해보겠습니다. 

 

del dic["수잔"]

 

아래 화면 빨간칸 10번 라인을 보시면 "수잔"이라는 Key를 del(삭제)하라고 명령했고 Key와 Value는 한 쌍이기 때문에 "박"이라는 Value까지 함께 삭제됩니다. 실제로 출력된 결과값이 {"데이비드":"윤", "케빈":"서", "크리스티나":"최"}로 3쌍 밖에 없으니 정확하게 실행되었음을 확인하실 수 있습니다.

 

 

그/렇/다/면,

 

딕셔너리가 굉장히 많은 Key:Value 쌍을 가지고 있다면 도대체 어떤 Key들을 가지고 있고 어떤 Value들을 가지고 있고 어떤 쌍들을 가지고 있는지 혼동되지 않을까요? 그래서 딕셔너리가 가지고 있는 Key, Value, 쌍을 간단하게 확인할 수 있는 함수들이 있답니다.

 

dic.keys() dic.values() dic.items()

 

아래 화면 빨간칸을 보시면 .keys() 함수를 사용하면 해당 딕셔너리가 가지고 있는 Key만 리스트 형식으로 출력할 수 있습니다. 마찬가지로 .values() 함수를 사용하면 해당 딕셔너리가 가지고 있는 Value만 리스트 형식으로 출력할 수 있겠죠? 하지만 단순히 Key, Value 따로따로가 아니라 아예 쌍을 확인하고 싶다면 .items() 함수를 사용해서 해당 딕셔너리가 가지고 있는 쌍만 리스트 형식으로 출력할 수 있답니다. 결과 값을 보시면 값들이 모두 대괄호[] 안에 있잖아요? 즉, 리스트 형식이라는 의미죠 :)

 

 

마지막으로, 지금까지 딕셔너리에 추가한 모든 데이터 쌍들을 삭제하고 싶을 때는 어떻게 해야할까요? 바로 Clear 함수를 사용하시면 됩니다. 간단하게 dic.clear()를 함으로써 딕셔너리 안에 있는 모든 쌍을 삭제할 수 있어요. dic.clear() 이후에 print(dic)을 해보시면 결과값은 {} 이렇게 텅 빈 중괄호{}로 출력된답니다.

 

오늘 이렇게 파이썬(Python)에서 딕셔너리 자료형에 대해 알아봤습니다. 딕셔너리는 특히 회사에서 직원 이름 : 연락처 등의 정보를 저장할 때 유용하게 사용될 수 있답니다. 그럼 이것으로 오늘의 포스팅을 마치겠습니다 :)

 

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기