给出python中的字符串列表,用于ex:
list_str = ['aa', 'bb', 'abc'].
替换清单中的一个元素的成本/复杂性如下:
list_str[i] = 'xyz'
(假设列表的长度为n,字符串的长度最多为m)
发布于 2015-06-21 04:32:14
用简单的测试,时间似乎是恒定的-
In [1]: list_str = ['aaa' for _ in range(100000)]
In [2]: %timeit list_str[0] = 'aab'
10000000 loops, best of 3: 77.7 ns per loop
In [3]: %timeit list_str[9999] = 'aab'
10000000 loops, best of 3: 77.2 ns per loop
In [4]: %timeit list_str[99999] = 'aab'
10000000 loops, best of 3: 78.7 ns per loop
In [5]: %timeit list_str[9] = 'aab'
10000000 loops, best of 3: 77.7 ns per loop
发布于 2015-06-21 04:30:46
替换元素的成本与列表的长度无关,与字符串的长度无关。在Python中,列表只包含对对象的引用。因此,基本上,替换一个元素就是覆盖大小指针的内存部分。
发布于 2015-06-21 04:31:43
由于CPython将列表实现为数组,所以像l[i] = x
这样的操作需要常数(O(1))时间。
https://stackoverflow.com/questions/30964491
复制