【发布时间】:2013-08-05 04:23:08
【问题描述】:
我有二维列表,我需要搜索元素的索引。在我开始编程时,我使用了以下功能:
def in_list(c):
for i in xrange(0,no_classes):
if c in classes[i]:
return i;
return -1
这里的 classes 是一个 2D 列表,no_classes 表示类的数量,即列表的第一个维度。当 c 不在数组中时返回 -1。有什么我可以优化搜索的吗?
【问题讨论】:
-
如果您将使用适当的数据结构(如 set),或者如果您事先对列表进行排序,则可以对其进行优化,否则它是 O(N^2) 算法,您无法更快地完成
-
@Roman Park:你能提供一些关于优化这个的提示吗?
-
您的列表中有重复项吗?元素的顺序重要吗?
-
没有重复...而且顺序真的不重要
-
这是个好问题,但我认为在代码审查堆栈交换中会更好。
标签: python list search python-2.7