dict.items() 対 dict.iteritems(): Python の進化的観点
Python では、辞書内の項目: dict.items() および dict.iteritems()。どちらもキーと値のペアを返しますが、この 2 つの間にはいくつかの重要な違いがあります。Python 2 と Python 3 の
dict.items()
Python の場合2、dict.items() は、辞書の (キー、値) ペアのリストのコピーを返します。これは、結果のリストを変更しても元の辞書には影響しないことを意味します。ただし、
Python 3 では重要な変更が導入されました。ここで、dict.items() は辞書の項目のビューを返すようになりました。これは、ビューに加えられた変更はすべて元の辞書に反映されることを意味します。Python 2 の
dict.iteritems()
一方、dict.iteritems Python 2 の () は、辞書の (キー、値) ペアの反復子を返します。イテレータは、メモリ内にリスト全体を構築することなくシーケンスを走査するメモリ効率の高い方法です。
dict.iteritems() の進化と削除
Python 2.2 でのジェネレーターの導入により、dict.items() を という名前の反復子ジェネレーター メソッドとして再実装できるようになりました。 iteritems()。元の dict.items() は、下位互換性のために残されました。
Python 3 では、更新された dict.items() がその機能を事実上置き換えたため、 iteritems() メソッドは削除されました。
主な違い: コピー vs. ビュー vs. イテレーター
次の主な違いdict.items() と dict.iteritems() はその出力です。 Python 2 の dict.items() は項目のコピーをリストとして提供しますが、Python 3 の dict.items() と Python 2 の dict.iteritems() はそれぞれビューまたはイテレーターを返します。
これメモリの使用量と効率に影響を与えます。イテレータはオンデマンドで値を生成するためメモリ効率が高くなりますが、ビューはより汎用性が高く、基になる辞書に加えられた変更を反映できます。
以上がPython で `dict.iteritems()` ではなく `dict.items()` を使用する理由の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。