PYTHON MEBY

Pythonで辞書を作成(dict, 辞書内包表記)

この記事では、Pythonで辞書を作成する方法について説明します。dict()コンストラクタと辞書内包表記の2つの方法を例を交えて解説します。

目次

辞書の作成(dict()コンストラクタ)

辞書を作成する最も基本的な方法は、dict()コンストラクタを使用することです。キーと値のペアを指定して辞書を作成します。

empty_dict = dict()
print(empty_dict)  # 出力: {}
dict1 = dict(a=1, b=2, c=3)
print(dict1) # 出力: {'a': 1, 'b': 2, 'c': 3}
dict2 = dict([('a', 1), ('b', 2), ('c', 3)])
print(dict2) # 出力: {'a': 1, 'b': 2, 'c': 3}
keys = ['a', 'b', 'c']
values = [1, 2, 3]
dict3 = dict(zip(keys, values))
print(dict3) # 出力: {'a': 1, 'b': 2, 'c': 3}

上記の例では、辞書を初期化する様々な方法を示しています。空の辞書の作成、キーワード引数による作成、タプルのリストからの作成、zip関数を使用した作成などです。

辞書内包表記

辞書内包表記は、辞書を作成するための簡潔で効率的な方法です。リスト内包表記と同様に、forループと条件式を組み合わせて辞書を作成できます。

squares = {x: x*x for x in range(1, 6)}
print(squares)  # 出力: {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
odd_squares = {x: x*x for x in range(1, 11) if x % 2 != 0}
print(odd_squares) # 出力: {1: 1, 3: 9, 5: 25, 7: 49, 9: 81}

上記の例では、辞書内包表記を使用して、1から5までの数の平方数を持つ辞書と、1から10までの奇数の平方数を持つ辞書を作成しています。if文を使用することで、条件に一致する要素のみを含めることができます。

辞書内包表記の応用例

辞書内包表記は、データ変換や集計処理など、様々な場面で役立ちます。以下は、辞書内包表記の応用例です。

words = ['apple', 'banana', 'cherry']
word_lengths = {word: len(word) for word in words}
print(word_lengths) # 出力: {'apple': 5, 'banana': 6, 'cherry': 6}
data = [(1, 'a'), (2, 'b'), (3, 'c')]
key_value_reversed = {value:key for key, value in data}
print(key_value_reversed) # 出力: {'a': 1, 'b': 2, 'c': 3}

これらの例では、単語とその長さの対応表、そしてキーと値を入れ替えた辞書を作成しています。このように、辞書内包表記は、データ操作を簡潔に記述するのに役立ちます。

関連記事