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