呼叫的复杂性是什么数字键()在Python 3中?

2024-04-25 04:10:26 发布

您现在位置:Python中文网/ 问答频道 /正文

python中dict.keys()的渐近复杂性是多少?在

我找到了this website,但它没有答案。我使用的是python3,但我想这不是特定于版本的。在


Tags: 答案版本websitekeysthisdictpython3复杂性
1条回答
网友
1楼 · 发布于 2024-04-25 04:10:26

在python3中,dict.keys()返回一个view object。本质上,这只是一个直接看到字典键的窗口。例如,在哈希表上没有循环来构建一个新对象。这使得调用它成为一个常数时间,即O(1)操作。在

字典的视图对象从here开始实现;新视图对象的创建使用^{}。这个函数所做的只是创建一个指向字典的新对象,并增加引用计数(用于垃圾跟踪)。在

在python2中,dict.keys()返回一个list对象。要创建这个新列表,Python必须循环哈希表,将字典的键放入列表中。这是作为函数^{}实现的。这里的时间复杂度与字典的大小成线性关系,即O(n),因为表中的每个槽都必须被访问。在

python2中的N.B.dict.viewkeys()与python3中的dict.keys()相同。在

相关问题 更多 >