片操作我想了解如何在Python切片的作品。如果我做类似运行在Python
arr = [1,2,3,4,5]
arr[0:n] = [9]*n
什么是splice操作的运行时间,其中n是某个整数?这是否在O(n)中运行,或者以某种方式持续时间切片?
片操作我想了解如何在Python切片的作品。如果我做类似运行在Python
arr = [1,2,3,4,5]
arr[0:n] = [9]*n
什么是splice操作的运行时间,其中n是某个整数?这是否在O(n)中运行,或者以某种方式持续时间切片?
你应该尝试IPython的笔记本电脑,它的这使得定时事情变得简单。我想我明白你想要做什么,所以我将500个元素列表与500个元素列表进行了切片。这是你在想什么?
除非我的分析是错误的,这看起来N阶?
您的分析错误。您正在计划创建'arr',而不仅仅是替换其中的n个元素。 (之所以这么说,都是O(n))的 – 2014-11-04 02:46:06
谢谢,我会纠正,但OP应该能够与笔记本%% timeit平凡做到这一点。 – 2014-11-04 16:12:58
没有办法这是不变的。单独表达式[9]*n
在空间上是线性的,因此也是时间上的。
这一切确实是'N'乘以9,然后抛出一个异常,所以它的运行时间是恒定的。 – 2014-11-04 01:19:44
@ChrisMartin非常有趣,谢谢指出这一点。编辑。 – Apollo 2014-11-04 01:31:14