Python: ディクショナリの全てのキーと値のペアを取得する items()
Pythonでディクショナリ(辞書)のすべてのキーと値のペアを取得する場合は、 items()メソッドを使います。
ディクショナリ.items()
戻り値は dict_itemsオブジェクトで、 キーと値のペアがタプルとして入っています。 dict_keysオブジェクトの具体例を表示してみます。
d = {"a": 10, "b": 20, "c": 30}
print(d.items()) # dict_items([('a', 10), ('b', 20), ('c', 30)])
print(type(d.items())) # <class 'dict_items'>
dict_itemsオブジェクトをfor文に渡す
dict_itemsオブジェクトはイテラブル(反復処理が可能)なオブジェクトです。 そのままfor文に渡して処理することができます。
d = {"a": 10, "b": 20, "c": 30}
for t in d.items():
print(t)
# 実行結果
('a', 10)
('b', 20)
('c', 30)
リストに変換する
dict_itemsオブジェクトをlistコンストラクタに渡すとリストに変換できます。 キーと値のペア(タプル)のリストになります。
d = {"a": 10, "b": 20, "c": 30}
li = list(d.items())
print(li) # [('a', 10), ('b', 20), ('c', 30)]
print(type(li)) # <class 'list'>
キーと値を別々に取得する
キーと値を別々に取得したい場合はfor文でループを回すときに、 キー用の変数と値用の変数を別々に用意します。 つまりタプルをアンパックすることで別々に取得できます。
次のコードではキー用の変数をk、値用の変数をvとして別々に取得しています。
d = {"a": 10, "b": 20, "c": 30}
for k, v in d.items():
print(k)
print(v)
# 実行結果
a
10
b
20
c
30