2024-04-20 10:25:15 发布
网友
我想知道在python中切片列表的效率是什么?你知道吗
例如:
myList = [1, 2, 3, 4, 5] newList = myList[1:4]
我在找big-O表示法(例如O(n))。你知道吗
O(n)
它是O(n)对于list的,而且大多数序列类型,因为对大多数类型的切片执行浅层复制,它不生成原始数据的视图。你知道吗
list
对于某些类型,如memoryview,或第三方类型,如numpy数组,切片生成视图,而不是副本,因此成本是O(1),因为构建视图的成本与视图大小无关。缺点是,这会使大量分配保持活动状态,因为分配的一小部分上存在单个视图;这个缺陷是为什么大多数内置类型使用复制策略而不是视图策略。你知道吗
memoryview
numpy
O(1)
它是
O(n)
对于list
的,而且大多数序列类型,因为对大多数类型的切片执行浅层复制,它不生成原始数据的视图。你知道吗对于某些类型,如
memoryview
,或第三方类型,如numpy
数组,切片生成视图,而不是副本,因此成本是O(1)
,因为构建视图的成本与视图大小无关。缺点是,这会使大量分配保持活动状态,因为分配的一小部分上存在单个视图;这个缺陷是为什么大多数内置类型使用复制策略而不是视图策略。你知道吗相关问题 更多 >
编程相关推荐