1. ホーム
  2. パイソン

[解決済み】forループを使った辞書の反復処理

2022-03-18 06:02:03

質問

以下のコードに少し困惑しています。

d = {'x': 1, 'y': 2, 'z': 3} 
for key in d:
    print (key, 'corresponds to', d[key])

よくわからないのは key の部分です。Pythonは、辞書からキーを読み取るだけでよいことをどのように認識しているのでしょうか?は key はPythonの特別な言葉ですか?それとも単に変数なのでしょうか?

どのように解決するのですか?

key は単なる変数名です。

for key in d:

は、キーと値ではなく、単に辞書のキーに対してループします。 キーと値の両方をループさせるには、次のようにします。

Python 3.xの場合。

for key, value in d.items():

Python 2.x用です。

for key, value in d.iteritems():

試しに keypoop .

Python 3.xの場合。 iteritems() は、単に items() のような、ディクショナリに裏打ちされた集合のようなビューを返します。 iteritems() が、さらに良い。 これは2.7でも viewitems() .

操作内容 items() は 2 と 3 の両方で動作しますが、2 の場合は辞書の (key, value) のペアは、その後に発生したディクショナリへの変更を反映しません。 items() を呼び出します。3.xで2.xの動作をさせたい場合は、3.xで2.xの動作をさせるために list(d.items()) .