Python 2におけるdict.items()とdict.iteritems()の違いは何ですか?

PYTHON3 チュートリアル

Python 2におけるdict.items()とdict.iteritems()の違い

Python 2において、dict.items()とdict.iteritems()はどちらも辞書のキーと値のペアを返すメソッドですが、その動作には微妙な違いがあります。

dict.items()

dict.items()はメソッドを呼び出すたびに、辞書のキーと値のペアをリストとして返します。つまり、メソッドを呼び出すたびに新しいリストが作成されます。

my_dict = {'a': 1, 'b': 2, 'c': 3}
items = my_dict.items()
print(items)
# 出力例: [('a', 1), ('b', 2), ('c', 3)]

dict.iteritems()

一方、dict.iteritems()はジェネレータを返すため、メモリの消費量が少なくなります。ジェネレータはイテレーションのたびに次の要素を生成し、リスト全体を保持する必要がありません。

my_dict = {'a': 1, 'b': 2, 'c': 3}
iteritems = my_dict.iteritems()
for key, value in iteritems:
    print(key, value)
# 出力例:
# a 1
# b 2
# c 3

サンプルコード

以下に、dict.items()とdict.iteritems()の違いを示す追加のサンプルコードを提供します。

# dict.items()
my_dict = {'x': 10, 'y': 20, 'z': 30}
items = my_dict.items()
print(items)
# 出力例: [('x', 10), ('y', 20), ('z', 30)]

# dict.iteritems()
iteritems = my_dict.iteritems()
for key, value in iteritems:
    print(key, value)
# 出力例:
# x 10
# y 20
# z 30

以上がPython 2におけるdict.items()とdict.iteritems()の違いについての説明です。どちらのメソッドも辞書のキーと値のペアを取得できますが、メモリの使用量や性能に違いがあることに注意してください。

Python 2におけるdict.items()とdict.iteritems()の違いは、主に返されるオブジェクトの型と振る舞いにあります。dict.items()は辞書のキーと値のペアを持つリストを返しますが、dict.iteritems()はイテレータを返します。dict.items()はリスト全体をメモリに展開するため、大きな辞書の場合はメモリを消費しますが、dict.iteritems()はイテレータを返すため、メモリを効率的に使用します。そのため、大きなデータセットを扱う場合はdict.iteritems()を使用することが推奨されます。

購読
通知
0 Comments
Inline Feedbacks
View all comments