Python - 딕셔너리 초기화, 4가지 방법

파이썬에서 딕셔너리(dict)를 초기화하는 다양한 방법을 소개합니다.

1. Literal로 딕셔너리 초기화

파이썬의 Literal 중에 { }으로 딕셔너리를 초기화할 수 있습니다.

아래 예제는 딕셔너리에 아무것도 없는, Empty 딕셔너리를 생성하는 예제입니다.

my_dict = {}
print(my_dict)

Output:

{}

또한, 딕셔너리 초기화 시 아래와 같이 key와 value를 초기값으로 설정할 수 있습니다.

my_dict = {
    'Korea': 'Seoul',
    'Japan': 'Tokyo',
}
print(my_dict)
print(my_dict['Korea'])

Output:

{'Korea': 'Seoul', 'Japan': 'Tokyo'}
Seoul

1.1 Nested Dictionary

딕셔너리 안에 value로 딕셔너리를 갖고 있을 수 있습니다.

my_dict = {
    'Korea': {
        'city1': 'Seoul',
        'city2': 'Busan',
    },
    'Japan': 'Tokyo',
}
print(my_dict)
print(my_dict['Korea']['city1'])

Output:

{'Korea': {'city1': 'Seoul', 'city2': 'Busan'}, 'Japan': 'Tokyo'}
Seoul

2. dict()로 딕셔너리 초기화

dict()는 비어있는 딕셔너리를 생성합니다. 초기화 후, my_dict[key] = value처럼 key와 value를 입력할 수 있습니다.

my_dict = dict()
print(my_dict)

my_dict['Korea'] = 'Seoul'
my_dict['Japan'] = 'Tokyo'
print(my_dict)

Output:

{}
{'Korea': 'Seoul', 'Japan': 'Tokyo'}

딕셔너리 초기화 시, key와 value의 초기값을 입력하려면 아래와 같이 인자로 전달하면 됩니다. 주의할 점은 key를 전달할 때 ""'' 같은 따옴표를 사용하지 않습니다.

my_dict = dict(Korea='Seoul', Japan='Tokyo')
print(my_dict)
print(my_dict['Korea'])

Output:

{'Korea': 'Seoul', 'Japan': 'Tokyo'}
Seoul

2.1 Nested Dictionary

아래와 같이 딕셔너리 안에 딕셔너리를 갖고 있도록 초기화할 수도 있습니다.

my_dict = dict(Korea = dict(city1 = 'Seoul', city2 = 'Busan'), Japan='Tokyo')
print(my_dict)
print(my_dict['Korea']['city1'])

Output:

{'Korea': {'city1': 'Seoul', 'city2': 'Busan'}, 'Japan': 'Tokyo'}
Seoul

2.2 dict()와 zip()으로 초기화

dict()zip()을 이용하면 두개의 리스트의 요소들을 key와 value로 갖는 딕셔너리를 만들 수 있습니다.

list1 = ['Korea', 'Japan']
list2 = ['Seoul', 'Tokyo']
my_dict = dict(zip(list1, list2))
print(my_dict)

Output:

{'Korea': 'Seoul', 'Japan': 'Tokyo'}

2.3 dict()에 리스트를 인자로 전달하여 초기화

dict()에 2개의 Tuple을 갖고 있는 리스트를 전달하면, Tuple의 요소들을 key와 value로 갖는 딕셔너리를 생성할 수 있습니다.

list1 = [('Korea', 'Seoul'), ('Japan', 'Tokyo')]
my_dict = dict(list1)
print(my_dict)

Output:

{'Korea': 'Seoul', 'Japan': 'Tokyo'}

3. fromkeys()로 딕셔너리 초기화

fromkeys()에 인자로 리스트를 전달하면, 리스트의 요소들을 key로 갖는 딕셔너리가 생성됩니다. value는 None으로 설정됩니다.

my_list = ['Korea', 'Seoul']
my_dict = dict.fromkeys(my_list)
print(my_dict)

Output:

{'Korea': None, 'Seoul': None}

기본으로 설정되는 value는 None인데, 아래와 같이 두번째 인자를 전달하면 그 값을 기본 value로 딕셔너리를 초기화합니다.

my_list = ['Korea', 'Seoul']
my_dict = dict.fromkeys(my_list, 'City')
print(my_dict)

Output:

{'Korea': 'City', 'Seoul': 'City'}

4. Comprehension으로 딕셔너리 초기화

Comprehension을 이용하여 다음과 같이 딕셔너리를 생성할 수 있습니다.

my_dict = {n: n*n for n in range(5)}
print(my_dict)

Output:

{0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
Loading script...
codechachaCopyright ©2019 codechacha