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