有效利用

时间:2013-01-17 14:12:42

标签: python python-3.x

我有一个包含大量元组的元组(确切地说是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" ...)

1 个答案:

答案 0 :(得分:8)

列表和元组中的查找总是效率低下;改为使用set()

lookupl = set(l)

测试集合中的成员资格是固定成本(O(1)),而列表和元组成员资格测试具有线性成本(O(n))。