1

python 中的 Collection 模块有一个数据类型 OrderedDict(),它使我们能够以与插入 dict 时相同的顺序保存键值对。它有一个方法 popitem,它允许我们在开始或最后弹出项目

dict.popitem(last = True)
dict.popitem(last = False)

python 3 中的默认dict 也可以作为OrderedDict() 工作,即它在插入键值对时保持它们的顺序。但是如何从这个字典中删除第一个或最后一个元素,就像在 OrderedDict() 中一样,而不使用传统的 for 循环来访问键值对

for key, value in dict:
    dict.pop(key)
    break

我只想知道是否有任何内置函数用于弹出 python 3 的默认字典中的第一个或最后一个元素,如 OrderedDict()。我搜索但找不到任何东西。

4

1 回答 1

1

从 Python 3.6 开始,dict.popitem总是像后进先出一样OrderedDict.popitem(last=True)

但是,虽然没有直接支持dict使popitem方法从 dict 前面弹出,但您可以模拟 FIFO 行为,OrderedDict.popitem(last=False)例如:

d = OrderedDict(a=1, b=2)
k, v = d.popitem(last=False) # k = 'a', v = 1

通过获取字典的第一个键,然后弹出该键的值:

d = {'a': 1, 'b': 2}
k = next(iter(d)) # k = 'a'
v = d.pop(k) # v = 1
于 2021-05-26T07:11:23.850 回答