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}
これらの例では、単語とその長さの対応表、そしてキーと値を入れ替えた辞書を作成しています。このように、辞書内包表記は、データ操作を簡潔に記述するのに役立ちます。
関連記事
- Pythonで辞書から要素を削除(pop, popitem, del)
- Pythonで辞書に要素を追加・更新(update, 辞書[key] = value)
- Pythonで辞書のキー・値を取得(keys, values, items)
- Pythonで辞書のキーの存在を確認(in演算子, get)
- Pythonで辞書をループ処理(for key in dict, for key, value in dict.items())
- Pythonで辞書をコピー(copy, deepcopy)
- Pythonで辞書を結合(update, {**dict1, **dict2} (Python 3.5以降))
- Pythonで辞書をフィルタリング(辞書内包表記)
- Pythonで辞書をJSONに変換(json.dumps)
- PythonでJSONを辞書に変換(json.loads)