Pythonで辞書のキーをリストとして取得する方法

Pythonで辞書のキーをリストとして取得するためには、list()関数を使うのが基本的な方法です。例えば、次のように辞書のキーをリストに変換できます。

my_dict = {1: 'one', 2: 'two', 3: 'three'}
keys_list = list(my_dict.keys())
print(keys_list)  # 結果: [1, 2, 3]

このコードでは、my_dict.keys()が返すdict_keysオブジェクトをlist()でリストに変換しています。dict_keysは辞書のキーを保持する特殊なビューオブジェクトで、リストに似た操作ができますが、完全なリストとして扱いたい場合はこのように変換が必要です。

アンパック演算子を使った簡潔な方法

Python 3.5以降では、アンパック演算子(*)を使って辞書のキーをリストに変換することも可能です。次のように書くことで、より簡潔に同じ結果を得ることができます。

keys_list = [*my_dict]
print(keys_list)  # 結果: [1, 2, 3]

この方法では、辞書自体をアンパックして、リストに直接キーを格納します。これは従来のlist(my_dict.keys())よりも短く、効率的に記述できる場合があります。

辞書のキーを扱うその他の方法

list(dict)と記述するだけでも、辞書のキーをリスト化できます。これはdict.keys()を使わない方法ですが、結果は同じです。

keys_list = list(my_dict)
print(keys_list)  # 結果: [1, 2, 3]

また、リスト内包表記を使ってキーを取得することもできます。

keys_list = [key for key in my_dict]
print(keys_list)  # 結果: [1, 2, 3]

パフォーマンスの考慮

小さな辞書の場合、どの方法でも速度差はほとんどありませんが、大規模な辞書ではlist(my_dict)やアンパック演算子を使った方が若干高速になることがあります。ただし、最も明示的で分かりやすい方法はlist(my_dict.keys())ですので、基本的にはこちらを使用することが推奨されます。

まとめ

Pythonで辞書のキーをリストとして取得する方法には、list()関数やアンパック演算子を使う方法があります。最も一般的な方法はlist(dict.keys())ですが、[*dict]もより簡潔で有効な選択肢です。どちらの方法を使うかは、可読性やコードの簡潔さを考慮して選ぶと良いでしょう。