python - python的list切片效率如何?

标签 python big-o slice

我想知道在python中切片列表的效率如何?

例如:

myList = [1, 2, 3, 4, 5]
newList = myList[1:4]

我正在寻找大 O 表示法(例如 O(n))。

最佳答案

对于 list 和大多数序列类型,它是 O(n),因为对于大多数类型的切片执行浅拷贝,它不会生成原始 View 数据。

对于某些类型,如 memoryview、Python 3 的 range,或第三方类型如 numpy 数组,切片生成 View ,而不是副本,因此成本为 O(1),因为无论 View 的大小如何,构建 View 的成本都相同。缺点是这可以使大量分配保持事件状态,因为分配的一小部分存在单一 View ;这个缺陷是为什么大多数内置类型使用复制策略而不是 View 策略。

关于python - python的list切片效率如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58810778/

相关文章:

python - 使用 rpy2 设置点阵图选项时出现问题

python - 从列表中提取满足条件的随机值? Python

algorithm - 这个算法会在 O(n) 内运行吗?

algorithm - 在程序中寻找循环不变式来计算立方和?

python - 大 O 表示法如何工作?

arrays - 去 : how to Assign all elements in 2 by 2 array of variable size?

python - 如何在 Django 中加入惰性翻译?

python - 如何快速读取一大块csv文件?

loops - 一行用元组循环函数调用的结果 (results, err)

python - 在切片之前评估 Django 查询集对象(或不是)的最佳实践方法?