有点混乱。它实际上来自堆栈pop/push
术语吗?
L.pop([index])-> item-删除并返回索引处的项(默认为倒数)。 如果列表为空或索引超出范围,则会引发IndexError。
>>> [1,2].pop()
2
删除并返回任意set元素。如果设置,则引发KeyError 是空的。
>>> {1,2}.pop()
1
答案 0 :(得分:2)
set.pop
不会不返回第一个元素。正如它在您引用的帮助中明确指出的那样,它返回一个任意元素。
原因很简单:集合本质上是无序的。没有有意义的“第一个”或“最后一个”元素。 1
1。由于集合存储为哈希表,因此从性能和简便性方面考虑,set.pop
将删除哈希表中的第一个元素,经常与第一个元素相同元素由集合迭代,但是不能保证。而且,实际上,CPython 3.6-3.7与3.3-3.5的确切时间有所不同。