Study/Python

[Python] 딕셔너리 개요 / 메소드

ChoiSenn 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() : 딕셔너리 내의 모든 항목을 삭제