【发布时间】:2021-04-09 14:11:47
【问题描述】:
正如我在许多帖子 like this 和 Internet 的其他来源 like this 中发现的那样,在 Python 3 中,用于字典的方法 keys() 返回类似于 memoryview 对象的东西,这使得该操作能够在恒定的时间复杂度O(1)。
由于dict.keys() 在执行set(some_list_obj) 操作时返回dict_keys 对象而不是具有O(n) 的list 对象,那么set(some_dict_keys_obj]) 的时间复杂度是多少?
注意:我意识到,set(some_dict_obj) 会返回一个带有字典键的集合。
【问题讨论】:
-
我希望它是
O(n),因为它会遍历视图(除非它在某处有特殊情况)。 -
源码在GitHub上,如果你想阅读的话:setobject.c
标签: python python-3.x dictionary data-structures time-complexity