Python: ディクショナリのすべてのキーを取得する keys()

Pythonでディクショナリ(辞書)のすべてのキーを取得する場合は、 keys()メソッドを使います。

ディクショナリ.keys()

戻り値はリストに似たdict_keysオブジェクトです。 dict_keysオブジェクトの具体例を表示してみます。

d = {"a": 10, "b": 20, "c": 30}

print(d.keys())  # dict_keys(['a', 'b', 'c'])



dict_keysオブジェクトをfor文に渡す

dict_keysオブジェクトはイテラブル(反復処理が可能)なオブジェクトなので、 次のようにそのままfor文に渡して処理することができます。

d = {"a": 10, "b": 20, "c": 30}

for k in d.keys():
	print(k)

# 実行結果
a
b
c

キーをリストに変換する

dict_keysオブジェクトをlistコンストラクタに渡すとリストに変換できます。

d = {"a": 10, "b": 20, "c": 30}

li = list(d.keys())

print(li)        # ['a', 'b', 'c']

print(type(li))  # <class 'list'>

キーのリストをソートして、降順・昇順で表示する

listコンストラクタにに渡して作成したリストを、 sortメソッドで昇順、または降順に並べ替えて、 表示する順番を変更することも可能です。

次のサンプルコードでは、 ディクショナリのキーのリストを降順でソートして、 「キー、値」の順番で表示しています。 実行結果から「c, b, a」の順番で「キーと値」が表示されているのが確認できます。

d = {"a": 10, "b": 20, "c": 30}

li = list(d.keys())

# キーをソート(降順)
li.sort(reverse=True)

print(li) # ['c', 'b', 'a']

for k in li:
	print(k, d[k])

# 実行結果
c 30
b 20
a 10
Python