Python中dict.keys()的时间复杂度是多少?

当我解决这个LeetCode问题时,我遇到了一个问题。 尽管我的解决方案已被系统接受,但在线搜索下列问题后,我仍然没有任何想法: What is the time complexity of dict.keys() operation? 它是否会返回密钥的视图或密钥的真实列表(存储在内存中)?


在Python 2中,它是O(n),它构建了一个新列表。 在Python 3中,它是O(1),但它不返回一个列表。 要从字典的keys绘制一个随机元素,您需要将其转换为列表。

这听起来像你可能使用random.choice(d.keys())来解决该问题的第3部分。 如果是这样,那就是O(n),你错了。 您需要实现自己的哈希表或者维护单独的元素列表,而不会牺牲平均情况下的O(1)插入和删除操作。

链接地址: http://www.djcxy.com/p/53499.html

上一篇: What is the time complexity of dict.keys() in Python?

下一篇: Access the sole element of a set