Python で辞書から項目を削除するにはどうすればよいですか?
元の辞書を変更せずに、項目を削除した別の辞書を取得するにはどうすればよいですか?
参照Python 辞書からキーを削除するにはどうすればよいですか?まだ存在しない可能性のあるアイテムを(キーによって)削除するという特定の問題について。
ベストアンサー1
のdel
声明要素を削除します:
del d[key]
これは既存の辞書を変更するので、同じインスタンスを参照している他のユーザーにとっては辞書の内容が変わることに注意してください。新しい辞書を返すには、辞書のコピーを作成します。
def removekey(d, key):
r = dict(d)
del r[key]
return r
コンストラクタは浅いコピーdict()
を作成します。深いコピーを作成するには、copy
モジュール。
辞書や代入などすべてにコピーを作成するということはdel
、定数時間から線形時間に移行し、線形空間も使用することになるということに注意してください。小さな辞書では、これは問題になりません。しかし、大きな辞書のコピーをたくさん作成する予定の場合は、おそらくHAMTのような別のデータ構造が必要になります(この答え)。