为什么在python中设置pop返回第一个元素而list pop返回最后一个元素

时间:2018-06-21 08:33:51

标签: python stack

有点混乱。它实际上来自堆栈pop/push术语吗?

  

L.pop([index])-> item-删除并返回索引处的项(默认为倒数)。   如果列表为空或索引超出范围,则会引发IndexError。

>>> [1,2].pop()
2
  

删除并返回任意set元素。如果设置,则引发KeyError   是空的。

>>> {1,2}.pop()
1

1 个答案:

答案 0 :(得分:2)

set.pop不会返回第一个元素。正如它在您引用的帮助中明确指出的那样,它返回一个任意元素。

原因很简单:集合本质上是无序的。没有有意义的“第一个”或“最后一个”元素。 1

1。由于集合存储为哈希表,因此从性能和简便性方面考虑,set.pop将删除哈希表中的第一个元素,经常与第一个元素相同元素由集合迭代,但是不能保证。而且,实际上,CPython 3.6-3.7与3.3-3.5的确切时间有所不同。