在 Python 中弹出列表和集合之间的元素哪个更快?

Which is faster in Python for popping elements in between- list or set?

我有一个要求,需要弹出中间的元素。这个要求哪个更快? python?

中的集合或列表

当你从列表中弹出一个项目时,所有的归档元素都会被移动,所以平均来说这个操作是 O(n)。弹出第一个元素是最坏的情况,因为整个列表必须移动。弹出最后一个元素实际上是 O(1),因为不需要移动任何内容。据我所知,python 列表不会重新分配到较小的缓冲区,因此只有在弹出第一个元素时才会复制整个列表。

集合被实现为可哈希对象。除非发生灾难性的碰撞,否则弹出一个元素总是 O(1)。如果你弹出一个任意元素,因为集合是无序的,即使在碰撞面前它也可能是 O(1),这取决于桶是如何实现的。