2024-04-25 04:10:26 发布
网友
python中dict.keys()的渐近复杂性是多少?在
dict.keys()
我找到了this website,但它没有答案。我使用的是python3,但我想这不是特定于版本的。在
在python3中,dict.keys()返回一个view object。本质上,这只是一个直接看到字典键的窗口。例如,在哈希表上没有循环来构建一个新对象。这使得调用它成为一个常数时间,即O(1)操作。在
字典的视图对象从here开始实现;新视图对象的创建使用^{}。这个函数所做的只是创建一个指向字典的新对象,并增加引用计数(用于垃圾跟踪)。在
在python2中,dict.keys()返回一个list对象。要创建这个新列表,Python必须循环哈希表,将字典的键放入列表中。这是作为函数^{}实现的。这里的时间复杂度与字典的大小成线性关系,即O(n),因为表中的每个槽都必须被访问。在
python2中的N.B.dict.viewkeys()与python3中的dict.keys()相同。在
dict.viewkeys()
在python3中,
dict.keys()
返回一个view object。本质上,这只是一个直接看到字典键的窗口。例如,在哈希表上没有循环来构建一个新对象。这使得调用它成为一个常数时间,即O(1)操作。在字典的视图对象从here开始实现;新视图对象的创建使用^{} 。这个函数所做的只是创建一个指向字典的新对象,并增加引用计数(用于垃圾跟踪)。在
在python2中,} 实现的。这里的时间复杂度与字典的大小成线性关系,即O(n),因为表中的每个槽都必须被访问。在
dict.keys()
返回一个list对象。要创建这个新列表,Python必须循环哈希表,将字典的键放入列表中。这是作为函数^{python2中的N.B.
dict.viewkeys()
与python3中的dict.keys()
相同。在相关问题 更多 >
编程相关推荐