【发布时间】:2019-03-12 02:31:12
【问题描述】:
今天在课堂上,我们了解到在 Python 中从列表中检索元素是O(1)。为什么会这样?假设我有一个包含四个项目的列表,例如:
li = ["perry", 1, 23.5, "s"]
这些项目在内存中的大小不同。所以不可能把li[0]的内存位置加上每个元素大小的三倍得到li[3]的内存位置。那么解释器如何知道li[3] 在哪里而不必遍历列表来检索元素呢?
【问题讨论】:
-
是什么让您认为数组是线性分配的,而不是指针列表。 - [我对你的个人资料描述感到困惑]
-
不要将项目 access(
O(1))与项目 lookup / search(O(n))混淆。 -
在两个不同的 SE 网站上询问 the same question 是不好的(当答案将在相同的上下文中时)。
-
投票结束作为离题,因为这是特定于语言的,并且已经在 Stack Overflow 上得到了回答。