Programming/Python

[python] Dictionary

minarae7 2023. 3. 29. 23:59
728x90
반응형

파이썬에서 Dictionary(딕셔너리)는 매우 중요한 자료형 중 하나이다. Dictionary는 key-value 쌍으로 이루어진 데이터를 다루기 위한 자료형이다. 이번에는 파이썬의 Dictionary 자료형의 특징, 제약 사항 및 사용 방법 등에 대해 자세히 알아보도록 하겠다.

dictionary의 선언

Dictionary의 특징

  1. Dictionary는 key-value 쌍으로 이루어져 있습니다. 즉, 값을 저장할 때 key를 지정하여 저장하며, 이 key를 이용하여 값을 참조합니다.
  2. Dictionary는 리스트나 튜플과 달리 순서가 없습니다. 즉, 값을 저장한 순서대로 출력하지 않습니다.
  3. Dictionary의 key는 변경 불가능한 자료형을 사용해야 합니다. 즉, 문자열, 정수, 실수, 불리언 등을 사용할 수 있지만 리스트나 딕셔너리 등은 사용할 수 없습니다.

Dictionary의 제약사항

  1. Dictionary에서는 key의 중복이 불가능합니다. 즉, 하나의 key에 대해 여러 개의 value를 가질 수 없습니다.
  2. Dictionary에서 key는 변경이 불가능한 자료형이어야 합니다.
  3. Dictionary에서 value는 변경 가능한 자료형과 변경 불가능한 자료형 모두 사용할 수 있습니다.
728x90

Dictionary의 사용 방법

여기서부터는 Dictionary를 어떻게 생성하고 접근하고 추가/삭제하는지 알아보도록 하겠다.

Dictionary의 생성

파이썬에서는 고정된 키와 값으로 쉽게 Dictionary를 생성할 수 있다. 요소의 순서는 중괄호 내에 배치되며, 키:값은 쉼표로 구분된다. 키의 값은 반복될 수 있지만 중복될 수는 없다는 점에 유의해야 한다. 또한 키는 문자열, 튜플 또는 숫자와 같은 변경 불가능한 데이터 유형을 가져야 합니다.

다음은 예시입니다 -

# Creating a Dictionary
# with Integer Keys
Dict = {1: 'Learning', 2: 'For', 3: Life}
print("\nDictionary with the use of Integer Keys: ")
print(Dict)

# Output: 
# Dictionary with the use of Integer Keys:
# {1: ‘Learning’, 2: ‘For’, 3: ‘Life’}
  
# Creating a Dictionary
# with Mixed keys
Dict = {'Name': ‘Great Learning’, 1: [1, 2, 3, 4]}
print("\nDictionary with the use of Mixed Keys: ")
print(Dict)

# Output: 
# Dictionary with the use of Mixed Keys: 
# {‘Name’: ‘GreatLearning’, 1: [1, 2, 3, 4]}

# 다양한 방법의 Dictionary 선언
dict_1 = {'apple': 1000, 'banana': 2000, 'orange': 1500}
dict_2 = dict([('apple', 1000), ('banana', 2000), ('orange', 1500)])
dict_3 = dict(apple=1000, banana=2000, orange=1500)

Dictionary의 접근

Dictionary의 키와 값은 다양한 방법으로 접근이 가능하다. 위의 코드에서 마지막 dict_x 변수에 대한 접근을 다음과 같이 할 수 있다.

print(dict_1['apple'])  # 1000
print(dict_2['banana'])  # 2000

Dictionary에서 key가 존재하지 않는 경우 KeyError가 발생할 수 있다. 이를 방지하기 위해, key가 존재하지 않는 경우에도 에러가 발생하지 않도록 하는 get() 함수를 사용할 수 있다. get() 함수를 사용하면 key가 존재하지 않는 경우 None을 반환한다. 예를 들어, 위의 dict_1에서 'orange'에 대한 value를 가져오기 위해서는 다음과 같이 코드를 작성할 수 있다.

print(dict_1.get('orange'))  # 1500

 

반응형

Dictionary의 추가

Dictionary에 새로운 key-value 쌍을 추가하기 위해서는, 대괄호([]) 안에 새로운 key를 넣고, 이를 이용하여 value를 지정해준다다. 예를 들어, 위의 dict_1에 'grape'에 대한 value를 3000으로 추가하려면 다음과 같이 코드를 작성합니다.

dict_1['grape'] = 3000
print(dict_1)  # {'apple': 1000, 'banana': 2000, 'orange': 1500, 'grape': 3000}

이 때 추가하는 키가 Dictionary에 이미 존재한다면 해당 키에 대한 값을 덮어쓰게 된다.

my_dict = {"username": "ABC", "email": "abc@gmail.com", "location":"Gurgaon"}
my_dict["username"] = "XYZ" # {‘username’: ‘XYZ’, ’email’: ‘abc@gmail.com’, ‘location’: ‘Gurgaon’}

Dictionary의 삭제

Dictionary의 요소를 삭제하기 위해서 del 키워드를 사용한다.

del dict['yourkey']  # key에 해당하는 요소를 삭제
del my_dict # 해당 이름의 dictionary 전체를 삭제
your_dict.clear() # 해당 Dictionary의 요소를 모두 삭제하고 빈 Dictionary로 만듬

위의 예제에서 각 요소를 삭제할 때 del 키워드를 사용하고 삭제할 키를 전달하도록 했다. 이 때 다른 방법으로 pop 메소드를 사용하는 방법도 있다.

pop은 아래와 같이 사용한다.

dict.pop(key, defaultvalue)

여기서 key는 삭제하고자 하는 키를 의미하며, defaultvalue는 전달된 key가 dictionary 안에 없을 경우 전달할 값을 의미한다.

다음은 pop에 대한 사용 예제이다.

# 딕셔너리 생성
dict_1 = {'apple': 1000, 'banana': 2000, 'orange': 1500}

# 'apple' key에 대한 value 제거
value = dict_1.pop('apple')

# 딕셔너리 출력
print(dict_1)  # {'banana': 2000, 'orange': 1500}

# 제거된 value 출력
print(value)  # 1000

pop을 하게 되면 해당 key의 value를 꺼내서 전달하고 dictionary에서 해당하는 key는 삭제한다. 이 때 만약 해당하는 key가 dictionary 안에 존재하지 않는다면 KeyError가 발생한다. 따라서, pop() 함수를 사용하기 전에 딕셔너리에 해당 key가 존재하는지 여부를 먼저 확인해야 한다.

이 때 KeyError를 회피하기 위해서는 try-except 문을 사용하여거나 defaultvalue를 같이 넘겨주면 된다. 다음의 코드를 참조하자.

# 딕셔너리 생성
dict_1 = {'apple': 1000, 'banana': 2000, 'orange': 1500}

# default_value를 지정하는 경우
value = dict_1.pop('melon', 0)  # default_value를 0으로 설정

print(dict_1)  # {'apple': 1000, 'banana': 2000, 'orange': 1500}
print(value)  # 0

# try-except 구문 사용
try:
    value = my_dict.pop('melon')
except KeyError as e:
    print(f"KeyError: {e} - 딕셔너리에 해당 key 값이 존재하지 않습니다.")

 

위와 같이 Dictionary에 대한 간단한 내용과 사용법을 알아보았다.

javascript에서는 object과 비슷한 개념으로 웹개발에서는 빈번하게 사용되므로 그 사용법을 익혀두는 것이 좋을 것이다.

해당 포스팅은 다음 사이트를 참조하여서 작성되었다.

 

Python dictionary append: How to add Key-value Pair?

Python dictionary append is simply used to add a key/value to the existing dictionary. The dictionary objects are mutable.

www.mygreatlearning.com

 

728x90
반응형