Python - ディクショナリーの初期化、4つの方法

Pythonで辞書(dict)を初期化するさまざまな方法を紹介します。

1. Literalによる辞書の初期化

Pythonの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の初期値を入力するには、以下のように引数に渡すだけです。注意すべき点は、キーを渡すときに ""または ''のような引用符を使用しません。

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() を使うと、2 つのリストの要素を 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() に引数としてリストを渡すと、リストの要素をキーとして持つディクショナリが生成されます。 value は None に設定されます。

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

Output:

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

デフォルトに設定されている値はNoneです。次の2番目の引数を渡すと、その値をデフォルト値にディクショナリが初期化されます。

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}

Related Posts

codechachaCopyright ©2019 codechacha