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