web-dev-qa-db-ja.com

Python辞書キー。「中」の複雑さ

トピックに関する私の好奇心を主に満たすための簡単な質問。

私はいくつかの大きなpython SQliteデータベースバックエンドを備えたプログラムを書いており、将来多数のレコードを処理する予定です。そのため、できる限り最適化する必要があります。

いくつかの機能については、辞書のキーを検索しています。私はプロトタイピングに「in」キーワードを使用しており、「in」キーワードは一般的にO(n)(これは単に変換されるため)であることを知っているので、後で戻ってそれらの検索を最適化する予定ですto pythonリスト全体を繰り返し、各要素を比較します。)python dictは基本的に単なるハッシュマップなので、python解釈するのに十分に賢いインタプリタ:

if(key in dict.keys()):
    ...code...

に:

if(dict[key] != None):
    ...code...

基本的には同じ操作ですが、上部はO(n)、下部はO(1)になります。

私がコードで一番下のバージョンを使用するのは簡単ですが、それから私はただ知りたいと思って質問したいと思いました。

47
tknickman

Dictのin演算子は、O(1)の平均ケース時間複雑さを持っています。他のdict()メソッドの時間の複雑さについての詳細は、こちら link をご覧ください。

0
prafi