1

次のように、多数のタプル(正確には1500タプル)を含むタプルがあります。

l = ( ("i",), ("i", "am"), ("im",), ("im", "here"), ("go",) ...)

のアイテムlはユニークです。

このリストで次のようにアイテムを見つけたいと思います。

if i in l:
  do_something_with(i)

このルックアップを効率的にするにはどうすればよいですか?並べ替える必要がありますlか?この形式でリストを検索する方が効率的でしょうか。

l = ( "i", "i am", "im", "im here", "go" ...)
4

1 に答える 1

8

リストとタプルのルックアップは常に非効率的です。set()代わりに使用してください:

lookupl = set(l)

セット内のメンバーシップのテストは一定のコスト(O(1))ですが、リストおよびタプルのメンバーシップテストには線形コスト(O(n))があります。

于 2013-01-17T14:13:51.070 に答える