为什么在python中没有可设置的popitem?

时间:2019-02-12 02:47:20

标签: python

集是无序的且没有索引的。因此,没有最后输入的元素的概念。因此,没有弹出项。这是没有集合的理由吗?

如果这是有效的推理,则为什么字典具有popitem。字典也像Set一样无序。

3 个答案:

答案 0 :(得分:1)

对应的集合方法是pop()

  

pop()

     

从集合中删除并返回任意元素。如果集合为空,则引发KeyError

在Python 3.7之前,字典是无序的,popitem()返回了一个任意的键值对。从3.7开始,才对字典进行排序并定义popitem()以按LIFO顺序返回项目。

字典将其称为popitem(),因为已经有一个pop(key)方法用指定的键删除该项。

答案 1 :(得分:0)

Python set具有pop(),以返回任意项。但是,您不知道会变成哪一个。

答案 2 :(得分:0)

由于在Python中集合是无序的,因此没有方法可以从集合中删除最后输入的元素。

如果您希望使用一种简单的方法来使用标准库来模拟有序集,则可以改用Screen Shot

collections.OrderedDict

在上面的示例中,from collections import OrderedDict s = OrderedDict.fromkeys((2,5,2,6,7)) s.popitem() 将变为:

s.keys()