ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 파이썬의 자료형 - 사전
    Python/study 2013. 12. 18. 01:40

    ※ 주의사항

    아래 공격 코드는 연구 목적으로 작성된 것이며, 허가 받지 않은 공간에서는 테스트를 절대 금지합니다.

    악의 적인 목적으로 이용할 시 발생할 수 있는 법적 책임은 자신한테 있습니다. 이는 해당 글을 열람할 때 동의하였다는 것을 의미합니다.

    해당 문서의 저작권은 해당 저자에게 모두 있습니다. 다른 용도로 사용할 시 법적 조치가 가해질 수 있습니다.

     

    상세 분석

    이번에는 사전에 대하여 알아보도록 하겠습니다.


    파이썬에서의 사전이라는 개념은 우리가 알고있는 그 사전의 개념과 똑같습니다. 다만 우리가 아는 사전처럼 '가나다'순 혹은 'abc'순과 같이 오름차순으로 정렬되어 있는 사전은 아닙니다. 순서는 상관이 없다는 말입니다. 그렇다면 어떤 식으로 활용할 수 있을까요?


    파이썬에서 사전은 데이터를 저장해두는 용도로 사용하기에 적합합니다. 예를 들어 내가 필요로하는 어떤 값들을 하나의 사전에 등록해두고 필요할때마다 가져다 쓰는 것입니다. 여기서 값들을 사전에 등록할 때, 각각의 값을 나타낼 수 있는 키워드를 붙여주는 것입니다. 그리고는 사전에 등록해둔 어떤 값이 필요할 때면, 키워드를 이용해서 해당 값을 불러오는 것입니다.


    사전을 생성하는 방법은 다음과 같습니다.



    첫번째로 사전의 이름을 정의해줍니다. 그리고 중괄호를 이용하여 사전의 시작과 끝을 나타냅니다. 중괄호의 안에는 사전에 등록할 데이터에 대한 키워드를 먼저 적어주고, 데이터를 적어줍니다.


    정리 33) 사전이름 = { "Key" : Value } : 파이썬에서 사전을 정의하는 방법입니다.


    그러면 실제로 사용하는 것을 보도록 하겠습니다.



    먼저 score라는 사전을 생성하여 각 과목에 대한 점수를 등록하였습니다. 점수는 과목명으로 찾을수 있게 되는 것입니다.

    사전을 생성한 다음에는 score라고 입력하여 해당 사전에 등록된 값들을 출력해보았습니다. 사전의 값들이 나열되는 것을 확인할 수 있습니다.


    이어서 사전에 있는 값을 추출해보았습니다. 사전에서 특정 키에 해당하는 값을 나타내고자 할때는 다음과 같이 표시합니다.


     

    위와같이 사전이름을 표시하고, 바로 이어서 원하는 값에대한 키를 대괄호와 큰따옴표로 묶어 표시합니다. 위의 예에서는 score라는 사전에 등록된 데이터들 중에서 math라는 키를 가진 데이터를 math라는 새로운 공간에 저장하는 것입니다. 해당 공간에 저장된 값을 출력해보면 score 사전에 등록되어 있는 math라는 키에 해당하는 데이터값이 출력되는 것을 확인할 수 있습니다.


    정리 34) math = score["math"] : 키값을 이용하여 사전에 등록된 데이터를 추출할 수 있습니다.


    사전에 등록된 값을 이용해서 연산을 할 수도 있습니다. score라는 사전에 등록된 데이터들을 모두 더해 sum이라는 공간에 저장하였습니다. 그리고 sum 에 저장된 값을 사전에 등록된 키의 총 갯수인 4로 나누었더니 점수들의 평균이 나왔습니다.


    다음은 사전을 이용하여 저에 대한 정보를 등록해보았습니다.



    먼저 저의 닉네임인 haerakai라는 이름의 사전을 이름, 나이, 키, 생년월일에 대한 데이터를 등록하여 생성하였습니다. 이어서 바로 해당 사전을 출력해보았습니다. 


    그리고 몸무게와 국가에 대한 정보를 추가하였습니다. 사전에 데이터를 추가하는 방법은 다음과 같습니다.



    위와 같이 사전의 이름을 먼저 명시하고 이어 대괄호와 큰따옴표를 이용하여 새로운 키값을 묶어줍니다. 그리고 오른쪽에 있는 데이터를 왼쪽에 명시된 사전의 키값에 대응시키겠다는 의미로 등호를 적어주고, 데이터값을 적어줍니다.


    정리 35) haerakai["nation"] = "South, Korea" : 사전에 새로운 값을 추가할 수 있습니다.


    그리고 haerakai라는 이름의 사전을 출력하였더니 추가된 몸무게 값과 국가 값이 함께 출력되었습니다.

     

    그 다음은 반대로 사전에 있는 데이터를 지우는 방법입니다. 그 방법은 다음과 같습니다.



    정리 36) del haerakai["weight"] : 키를 이용하여 사전에 있는 데이터를 삭제할 수 있습니다.


    사전에 있는 몸무게 값을 지우고나서 사전을 출력해보면 몸무게에 대한 데이터는 없는 것을 확인할 수 있습니다.

    제 몸무게는 소중하니까요.


    그럼 이번에는 if 문에서 사전을 사용하는 방법을 알아보도록 하겠습니다.



    첫번째 if 문은 haerakai라는 사전에 name이라는 키가 있으면, namename이라는 공간에다가 해당 키에 대응하는 데이터를 저장하고, 사전에 name이라는 키가 없으면 "noname"이라는 문자열을 저장하는 구문입니다. 앞서 생성한 haerakai라는 사전에는 name이라는 키가 존재하므로 해당 키에 대응하는 값이 namename에 저장되었습니다.

     

    다음 if 문은 haerakai라는 사전에 girl_friend라는 키가 있으면, has_girl이라는 공간에다가 해당 키에 대응하는 데이터를 저장하고, 사전에 girl_friend라는 키가 없으면 "It's sad story."라는 문자열을 저장하는 구문입니다. 앞서 생성한 haerakai라는 사전에는 girl_friend라는 키가 없기 때문에 has_girl이라는 공간에는 "It's sad story."라는 문자열이 저장되었습니다.

    사실 저는 여자친구가 있습니다. :-)

     

    위에서 작성한 if 문을 아주짧게, 한줄로 나타낼 수도 있는데요. 다음 예제를 보도록 하겠습니다.

     


    첫번째 구문을 보면 .get()이라는 함수가 사용되었습니다. 해당 함수는 첫번째 인자로 주어진 키가 사전에 존재하면 해당 값을 구문 왼쪽에 명시된 공간에 저장하고, 키가 사전에 존재하지 않으면 두번째 인자로 주어진 값을 함수 왼쪽에 명시된 공간에 저장합니다. haerakai라는 사전에는 tall이라는 키가 존재하기 때문에 tall이라는 키에 대응하는 데이터가 함수 왼쪽에 명시된 공간에 저장되었습니다.


    다음과 같이 사용합니다.



    정리 37) tall = haerakai.get("tall",0.0) : 사전에서 특정 키에 대한 데이터를 찾아 저장하고, 키가 없는 경우 지정된 값을 저장합니다.


    그 다음은 사전에 있는 키들을 list로 저장하는 함수입니다. 방법은 다음과 같습니다.



    먼저 리스트를 저장할 공간을 명시하고 list라는 함수를 사용합니다. 이때 함수의 인자로 사전이름을 적어주면 됩니다.


    정리 38) dic_list = list(haerakai) : 사전의 키들을 리스트로 저장할 수 있습니다.


    여기까지 사전에 대한 정리를 마치도록 하겠습니다. 개인적으로는 파이썬의 사전은 C언어의 구조체와 많이 닮았다는 생각이듭니다. 구조체의 이름을 정의하고 구조체 내부에 다양한 자료형을 가진 변수들로 구조체를 구성하고.. 개인적인 생각입니다.^^




    정리모음


    정리 33) 사전이름 = { "Key" : Value } : 파이썬에서 사전을 정의하는 방법입니다.

    정리 34) math = score["math"] : 키값을 이용하여 사전에 등록된 데이터를 추출할 수 있습니다.

    정리 35) haerakai["nation"] = "South, Korea" : 사전에 새로운 값을 추가할 수 있습니다.

    정리 36) del haerakai["weight"] : 키를 이용하여 사전에 있는 데이터를 삭제할 수 있습니다. 

    정리 37) tall = haerakai.get("tall",0.0) : 사전에서 특정 키에 대한 데이터를 찾아 저장하고, 키가 없는 경우 지정된 값을 저장합니다.

    정리 38) dic_list = list(haerakai) : 사전의 키들을 리스트로 저장할 수 있습니다.

     

     

     

    참고 URL 및 도서

    - 파이썬 완벽 가이드, 데이비드 M. 비즐리 저, 2012년, 인사이트 펴냄 


     

    'Python > study' 카테고리의 다른 글

    파이썬의 제네레이터와 이더레이터  (8) 2013.12.18
    파이썬의 함수  (0) 2013.12.18
    파이썬의 반복문  (0) 2013.12.18
    파이썬의 파일 입출력  (0) 2013.12.18
    파이썬의 조건문  (0) 2013.12.18
    파이썬의 자료형 - 집합  (0) 2013.12.18
    파이썬의 자료형 - 튜플  (0) 2013.12.18
    파이썬의 자료형 - 리스트  (0) 2013.12.18
    파이썬의 자료형 - 문자열(추가)  (0) 2013.12.18
    파이썬의 자료형 - 문자열  (1) 2013.12.13
Designed by Tistory.