リストの辞書があるとします:
d = {'a': [1], 'b': [1, 2], 'c': [], 'd':[]}
ここで、値が空のリストであるキーと値のペアを削除したいと思います。次のコードを試しました:
for i in d:
if not d[i]:
d.pop(i)
しかし、これはエラーになります:
RuntimeError: dictionary changed size during iteration
辞書を反復処理している間は、エントリを追加または削除することはできないと理解しています。この制限を回避して問題を解決するにはどうすればよいでしょうか?
見るPython 辞書を反復処理しながら変更するこれが問題を引き起こす可能性がある理由とその理由を引用します。