ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Python] 딕셔너리 개요 / 메소드
    Study/Python 2022. 4. 3. 19:30

     

     

     

     

    딕셔너리(dictionary)

     

     - 리스트와 같이 값을 저장하는 자료구조로, 파이썬에서는 기본 자료형으로 제공되고 있다.

     - 리스트와는 달리 값(value)과 관련된 키(key)가 있다는 것이 큰 차이점이다.

     - 서로 관련되어 있는 키와 값이 함께 저장되는데, 이것을 키-값 쌍(key-value pair)이라고 한다.

     

     

     

    딕셔너리 생성 방법

     

     - {}를 이용해서 공백 딕셔너리를 생성한다.

            phone_book = { }  # 공백 딕셔너리를 생성한다.

     - [] 안에 키 값을 적고 값을 추가한다.

            phone_book["홍길동"] = "010-1234-5678"

     - 출력하면 딕셔너리의 항목(item)이 쉼표로 구분되어 출력된다.

            print(phone_book)

            >>  {'홍길동': '010-1234-5678'}

     - 딕셔너리를 생성과 동시에 초기화하는 방법도 있다.

            phone_book = {"홍길동": "010-1234-5678"}

     

     

     

    딕셔너리의 기능

     

     - 리스트와 마찬가지로 딕셔너리에는 어떤 유형의 값도 저장할 수 있다.

     - 딕셔너리에서 가장 중요한 연산은 키로 연관된 값을 찾아내는 것이다.

            print(phone_book["홍길동"])

            >>  010-1234-5678

     - 리스트에서는 인덱스를 가지고 항목을 찾을 수 있었지만, 딕셔너리에서는 키가 있어야 값을 찾을 수 있다.

     - 딕셔너리에서 사용되는 모든 키를 출력하려면 다음과 같이 keys() 메소드를 사용하면 된다.

            phone_book.keys()

            >>  dict_keys(['이순신', '홍길동', '강감찬'])

     - 딕셔너리에서 사용되는 모든 값을 출력하려면 values()를 사용한다.

            phone_book.values()

            >> dict_values(['010-1111-1111', '010-1234-5678', '010-0000-0000'])

     - 딕셔너리 내부의 모든 값을 출력하려면 items()를 사용할 수도 있다. for문에서 phone_book.items()로 함수를 호출하면 (키, 값) 튜플이 반환되므로 활용이 가능하다.

            phone_book.items()

            >>  dict_items([('홍길동', '010-1234-5678'), ('강감찬', '010-0000-0000'), ('이순신', '010-1111-1111')])

            for name, phone_num in phone_book.items():  # 딕셔너리의 항목들을 시퀀스로 추출

                    print(name, ' : ', phone_num)

            >>  홍길동 : 010-1234-5678

            >>  강감찬 : 010-0000-0000

            >>  이순신 : 010-1111-1111

     

     

     

    딕셔너리의 메소드들

     

     - 딕셔너리의 모든 항목을 하나씩 출력하려면 리스트처럼 for문을 사용할 수 있다.

     - keys()메소드는 딕셔너리에 있는 키 항목을 시퀀스로 반환하므로, 이 값을 받아 phone_book[key]로 접근이 가능하다.

            for key in phone_book.keys():

                    print(key, ' : ', phone_book[key])

            >>  홍길동 : 010-1234-5678

            >>  강감찬 : 010-0000-0000

            >>  이순신 : 010-1111-1111

     

     - 딕셔너리 안의 항목들은 자동으로 정렬되지 않으므로 sorted() 함수를 이용하여 딕셔너리의 키를 기준으로 정렬한다.

            sorted(phone_book)

            >>  ['강감찬', '이순신', '홍길동']

     - sorted() 함수는 phone_book.item()과 같이 키, 값의 튜플 쌍을 받아 정렬할 수 있다.

     - 람다 표현식은 x를 인자로 받아 x의 첫 항목인 x[람다]를 반환하는 기능을 한다.

            sorted_phone_book = sorted(phone_book.items(), key = lambda x: x[0])

            print(sorted_phone_book)

            >>  [('강감찬', '010-0000-0000'), ('이순신', '010-1111-1111'), ('홍길동', '010-1234-5678')]

     

     - 딕셔너리의 항목을 삭제하려면 del을 사용할 수 있다.

            del phone_book["홍길동"]

     

     - keys() : 딕셔너리 내의 모든 키를 반환 

     - values() : 딕셔너리 내의 모든 값을 반환

     - items() : 딕셔너리 내의 모든 항목을 [키]:[값] 쌍으로 반환

     - get(key) : 키에 대한 값을 반환. 키가 없으먼 None 반환

     - pop(key) : 키에 대한 값을 반환하고 해당 항목 삭제. 키가 없으면 KeyError 예외 발생

     - popitem() : 제일 마지막에 입력된 항목을 반환하고 해당 항목 삭제

     - clear() : 딕셔너리 내의 모든 항목을 삭제

Designed by Tistory.