Python 2 の dict.items() と dict.iteritems() の違いを理解する
質問で述べたように、 Python 2 では、辞書からキーと値のペアを取得するメソッドが 2 つあります。dict.items() とdict.iteritems()。提供した出力は、同じオブジェクトへの参照を返すことを示していますが、注意すべき重要な違いがあります。
2 つのメソッドの主な違いは、戻り値にあります。 dict.items() は、辞書の (キー、値) ペアのリストのコピーを返します。これは、元の辞書に加えられた変更は、dict.items() によって返されるコピーには反映されないことを意味します。一方、dict.iteritems() は、辞書の (キー、値) ペアを走査する反復子を返します。コピーは作成されませんが、代わりにペアをループする方法が提供されます。
dict.items() がコピーを返す理由は効率化のためです。古いバージョンの Python では、dict.items() を使用して辞書内の項目を反復処理すると、反復ごとに新しいリストが作成されます。これは、特に大規模な辞書の場合、時間のかかるプロセスです。コピーを返すことで、dict.items() は複数のリストを作成する必要がなくなり、操作の時間の複雑さが軽減されます。
この例では、dict.items() と dict.iteritems() は両方とも次のように見えます。ペアを反復処理して元の辞書の値と比較するため、同じオブジェクトへの参照が返されます。ただし、辞書に変更を加えた場合、dict.items() は更新されたリストを返しますが、dict.iteritems() は元のペアを繰り返し処理し続けることがわかります。
要約すると、dict .items() は辞書の (キー、値) ペアのコピーを返し、dict.iteritems() はペアの反復子を返します。 2 つの方法のどちらを選択するかは、コピーが必要か反復子が必要かによって異なります。 Python 3 では、dict.items() がビューを返すように進化し、dict.iteritems() の必要性がなくなりました。
以上がPython 2 の `dict.items()` メソッドと `dict.iteritems()` メソッドの主な違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。