del d[key]
キーと値のペアが削除されることを理解していますがd[key]=None
、値の参照を解除するだけです。
しかし、メモリ管理に関して、何か違いはありますか?None
この値を参照する他の変数がないと仮定して、値を設定するとすぐにガベージコレクションがトリガーされますか?
私は少し実験を行いました:
In [74]: import sys
In [75]: a = {'a': 'blah'}
In [76]: sys.getsizeof(a)
Out[76]: 280
In [77]: a['a'] = None
In [79]: sys.getsizeof(a)
Out[79]: 280
In [80]: del a['a']
In [81]: sys.getsizeof(a)
Out[81]: 280
アプローチが有効かどうかはわかりませんが、辞書のサイズに関してはまったく違いがないようです。私はここで何かを逃さなければなりません。