ana*_*nya 3 python python-2.7 python-3.x
array = ["A", "B", "C", "D"]
Run Code Online (Sandbox Code Playgroud)
对于给定的数组,它需要O(1)指向第一个索引,即 0。因此,如果我输入array[0],它需要O(1)指向"A"。但是如果我写array[-1]which指向最后一个索引3。它是否会迭代整个数组以获取最后一个索引,或者它知道数组默认以索引3结束?换句话说,array[-1]在python中是如何实现的?
访问任何数组元素都是在恒定时间内,因为它是由内存位置(即指针)已知的。
该数组不需要遍历先前的元素来访问第 n 个元素(即,它不像链表)。所有元素的位置事先已知,并且可以直接访问。
感谢评论更新。
array[-x]是 的语法糖array[len(lst) - x]。所以它仍然是对指针的简单常量访问,并且不需要时间。
您可以查看此答案以获取更多信息。虽然是关于C的,但是概念应该是相同的。
| 归档时间: |
|
| 查看次数: |
4044 次 |
| 最近记录: |