python - 在Python中存储零的列表与字典

标签 python list dictionary

我正在解决一个问题,其中我需要一个零列表,之后我必须更新列表中的一些值。现在我脑子里有两个选择,我该怎么做呢?首先是简单地创建一个零列表,然后更新值,或者创建一个字典,然后更新值。

列表方法:

l=[0]*n

字典法:

d={}
for i in range(n):
    d[i]=0

现在构建字典的复杂性是 O(n) ,然后更新 key 是 O(1) 。但我不知道 python 如何使用上述方法构建零列表。

假设 n 是一个很大的数字,上述方法中哪一种更适合这项任务? python 中的 list 方法是如何实现的? 。另外,为什么上面的列表方法比创建零列表的列表理解方法更快?

最佳答案

预分配序列后的访问和更新将大致相同。

选择对您的应用程序有意义的数据结构。在这种情况下,我建议使用一个列表,因为它更自然地适合“由整数索引的序列”

[0]*n 之所以快,是因为它可以一次性生成一个正确大小的列表,而不是随着更多元素的添加而不断扩展列表。

关于python - 在Python中存储零的列表与字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40884453/

相关文章:

Python:替换字符串中的特定字符(重复问题)

Python:使用 Bottle 框架从浏览器检索当前 URL

python - 从生成器中获取固定数量的项目

python - os.makedirs 导致 Amazon AWS Ubuntu 实例上的 OSError

python - For循环遍历Python中的列表

node.js - 在类型上找不到参数类型为 'string'的索引签名

python - 在 openshift 中导入 python 模块

python - 在 Python 中添加两个列表

python - 为什么我的代码不适用于单个列表但适用于嵌套列表?

java - 根据内部 map 外部的键对嵌套 map 中的值求和