【问题标题】:What is the time complexity of converting a Python dict.keys() in Set?在 Set 中转换 Python dict.keys() 的时间复杂度是多少?
【发布时间】: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


【解决方案1】:

由于 dict.keys() 的时间复杂度为 O(1),因此您需要考虑的唯一时间复杂度是迭代 dict.keys() 时,即 O(n)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-17
    • 1970-01-01
    • 1970-01-01
    • 2016-08-21
    • 1970-01-01
    • 2021-08-03
    • 2012-07-31
    • 1970-01-01
    相关资源
    最近更新 更多