【发布时间】:2020-08-12 01:21:53
【问题描述】:
自 Python 3.7 起,字典根据插入保留顺序。
您似乎可以使用next(iter(my_dict)) 获取字典中的第一项?
我的问题是关于该操作的大 O 时间复杂度?
我可以将next(iter(my_dict)) 视为常数时间(O(1))操作吗?或者在恒定时间内检索字典中第一项的最佳方法是什么?
我问的原因是我希望将它用于编码面试,其中非常强调解决方案的时间复杂度,而不是它以毫秒为单位的运行速度。
【问题讨论】:
-
@rdas 从 Python 3.7 开始,它不再只是一个实现细节。字典顺序保证按插入顺序排列,这是一种语言功能。 docs.python.org/3.7/library/stdtypes.html#mapping-types-dict 我认为使用有序字典是在面试中使用的有效数据结构?没有?
-
看这与我的问题无关。在算法编码面试中,您通常会提出几种解决方案(并讨论权衡),因此我想使用 Python 3.7+ 的有序字典作为我的解决方案之一。因此,我想知道如何获得恒定时间复杂度的第一个元素。这不是我要向面试官提出的唯一解决方案,因此“这是否是我的面试官正在寻找的答案”的问题是无关紧要的。
标签: python python-3.x dictionary data-structures python-3.7