【发布时间】:2013-06-14 10:46:00
【问题描述】:
我有一个系统,我经常(但不是经常)必须在元组中找到下一个项目。我目前正在这样做:
mytuple = (2,6,4,8,7,9,14,3)
currentelement = 4
def f(mytuple, currentelement):
return mytuple[mytuple.index(currentelement) + 1]
nextelement = f(mytuple, currentelement)
所有元素都是唯一的,我不拘泥于元组,如果需要,我可以在程序的早期将它改成其他东西。
因为我需要做很多,我想知道是否有更有效的方法来做到这一点?
【问题讨论】:
-
所有数字都是唯一的?
-
如果您对数据结构(即元组)感到困惑,那么不会。线性搜索就是你所能做的。
-
是的,所有元素都是唯一的,但实际上,在我的程序中不是数字,而是字符串。为了简化这个例子,我只是在这里做了数字..
-
一个 dict 有 O(1) 的查找,但是对于小的元组,无论如何进行线性搜索可能会更快。这将取决于 Python 实现什么大小的元组仍然比字典快
-
我有大约一百万个项目的元组,所以我认为 dict 将是我程序的巨大改进.. :)