首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >替换python中列表元素的成本

替换python中列表元素的成本
EN

Stack Overflow用户
提问于 2015-06-21 12:27:04
回答 5查看 1.8K关注 0票数 0

给出python中的字符串列表,用于ex:

代码语言:javascript
代码运行次数:0
运行
复制
list_str = ['aa', 'bb', 'abc'].

替换清单中的一个元素的成本/复杂性如下:

代码语言:javascript
代码运行次数:0
运行
复制
list_str[i] = 'xyz'

(假设列表的长度为n,字符串的长度最多为m)

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-06-21 12:32:14

用简单的测试,时间似乎是恒定的-

代码语言:javascript
代码运行次数:0
运行
复制
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
票数 3
EN

Stack Overflow用户

发布于 2015-06-21 12:30:46

替换元素的成本与列表的长度无关,与字符串的长度无关。在Python中,列表只包含对对象的引用。因此,基本上,替换一个元素就是覆盖大小指针的内存部分。

票数 1
EN

Stack Overflow用户

发布于 2015-06-21 12:31:43

由于CPython将列表实现为数组,所以像l[i] = x这样的操作需要常数(O(1))时间。

参见此处的操作表:https://wiki.python.org/moin/TimeComplexity

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30964491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档