python - 获取数组的最后一个索引的时间复杂度是多少?

标签 python python-3.x python-2.7

<分区>

array = ["A", "B", "C", "D"]

对于给定的数组,它需要 O(1) 才能指向第一个索引 0。因此,如果我键入 array[0],它需要 O(1) 指向"A"。但是,如果我编写指向最后一个索引 3 的 array[-1]。它是遍历整个数组以获得最后一个索引,还是知道数组默认以索引 3 结束? 也就是说array[-1]在python中是如何实现的?

最佳答案

访问任何数组元素都是在常数时间内,因为它是已知的内存位置(即指针。)

数组不需要通过先前的元素来访问第 n 个元素(即它不像链表。)所有元素的位置都是事先已知的,可以直接访问。

更新感谢评论。

array[-x]array[len(lst) - x] 的语法糖。所以它仍然是对指针的简单常量访问,不需要时间。

You can see this answer for a bit more info. While it is about C, the concepts should be the same.

关于python - 获取数组的最后一个索引的时间复杂度是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54432475/

相关文章:

python - Flask-SQLAlchemy ssl-connection 与 AWS RDS 错误

python - 在 SQLAlchemy 中使用 selectinload 加载相关对象时的排序顺序

python - 如何在 PyGame 中滚动背景表面?

python - 什么是引用窃取和借用?

python - 将数据投影到较低维度的后果

Python 对象检查器 GUI

python-3.x - python-fortran集成: callback comparison between f2py and ctypes

Python:类方法参数和类属性同名

python - 按列而不是行键控

python - Pandas 无法从 Numpy 时间戳数组创建 DataFrame