python dict
またはdefaultdict
からのキーの削除python is O(1)操作、 ここで述べたように および ここ です。OrderedDict
からキーを削除するには、_del d[key]
_を使用するか、popitem()
メソッド。
OrderedDict
の基本的な実装とdel
操作の時間の複雑さは何ですか?
編集:この回答 OrderedDictのパフォーマンス(dequeと比較) は、del
のOrderedDict
の複雑さをO(1)として参照します。しかし、実装の詳細レベルでそれを正当化するにはどうすればよいですか?
Python 3.7のOrderedDict.__delitem__
の- 実装 は次のとおりです。
def __delitem__(self, key, dict_delitem=dict.__delitem__):
'od.__delitem__(y) <==> del od[y]'
# Deleting an existing item uses self.__map to find the link which gets
# removed by updating the links in the predecessor and successor nodes.
dict_delitem(self, key)
link = self.__map.pop(key)
link_prev = link.prev
link_next = link.next
link_prev.next = link_next
link_next.prev = link_prev
link.prev = None
link.next = None
このコードは3つのことを行います。
上記のすべての操作には一定の時間がかかるため、OrderedDict.__delitem__
の複雑さも一定です。