我有一个包含大量元组的元组(确切地说是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" ...)
答案 0 :(得分:8)
列表和元组中的查找总是效率低下;改为使用set()
:
lookupl = set(l)
测试集合中的成员资格是固定成本(O(1)),而列表和元组成员资格测试具有线性成本(O(n))。