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

在列表和元组中查找总是低效的;改用 a set()

lookupl = set(l)

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

于 2013-01-17T14:13:51.070 回答