Mar*_*ang 42 python complexity-theory
我正在写一个看起来像这样的python函数
def foo(some_list):
for i in range(0, len(some_list)):
bar(some_list[i], i)
Run Code Online (Sandbox Code Playgroud)
所以它被称为
x = [0, 1, 2, 3, ... ]
foo(x)
Run Code Online (Sandbox Code Playgroud)
我曾经假设列表的索引访问是O(1),但是很惊讶地发现,对于大型列表,这比我预期的要慢得多.
那么,我的问题是如何实现python列表,以及下面的运行时复杂性是什么
list[x]list.pop()list.pop(0)list.append(x)额外的功劳,拼接或任意流行音乐.
Sil*_*ost 35
python wiki上有一个非常详细的表格可以回答你的问题.
但是,在您的特定示例中,您应该使用enumerate在循环中获取可迭代的索引.像这样:
for i, item in enumerate(some_seq):
bar(item, i)
Run Code Online (Sandbox Code Playgroud)
答案是"未定义".Python语言没有定义底层实现.以下是您可能感兴趣的邮件列表主题的一些链接.
此外,更多Pythonic编写循环的方式是:
def foo(some_list):
for item in some_list:
bar(item)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
34165 次 |
| 最近记录: |