2026a

# pop!


移除集合中的元素并返回该元素。如果集合是有序容器,则返回最后一个元素;如果是无序容器,则返回任意一个元素。

# 语法

pop!(collection)
pop!(collection, key, [default])
pop!(q::Deque{T})
pop!(h::BinaryHeap)
pop!(sc, k, [default])
pop!(ss::SortedSet)

# 说明

pop!(collection) 移除集合中的一个元素并返回该元素。对于有序集合,返回最后一个元素;对于无序集合,返回任意一个元素。示例


pop!(collection, key, [default]) 移除并返回集合中键 key 对应的值。如果 key 不存在,则返回 default;若未提供 default 则抛出错误。示例


pop!(q::Deque{T}) 移除末尾的元素。


pop!(h::BinaryHeap) 移除并返回堆 h 中的顶部元素


pop!(sc, k, [default]) 删除 SortedDict 或 SortedSet 中键为 k 的项,并返回与 k 关联的值。如果 k 不在 sc 中,返回 default,如果没有指定 default,则抛出 KeyError。


pop!(ss::SortedSet) 删除 ss 中的第一个键,并返回该键。如果 ss 为空,则会导致 BoundsError。

# 示例

移除集合中的元素

创建数组 A,调用 pop! 移除最后一个元素。

A = [1, 2, 3];
pop!(A)
3

查看数组 A。

A
[1, 2]

创建集合 S,调用 pop! 移除其中一个元素。

S = Set([1, 2]);
pop!(S)
2

查看集合 S。

S
Set{Int64} with 1 element:
  1
移除并返回指定键值

创建字典 d,移除键 "a" 对应的值。

d = Dict("a"=>1, "b"=>2, "c"=>3);
pop!(d, "a")
1

尝试移除不存在的键 "d",会抛出错误。

pop!(d, "d")
ERROR: KeyError: key "d" not found

移除不存在的键 "e",但提供默认值 4。

pop!(d, "e", 4)
4

# 输入参数

collection - 输入集合
Array | Dict | Set | Deque | BinaryHeap | CircularBuffer | DataFrame

输入待移除元素的集合,可为数组、字典、集合、双端队列、二叉堆、循环缓冲区或数据帧。

key - 要移除的键
数值 | 字符 | 字符串等

要在集合中移除的键,指定为数值、字符或字符串等。

default - 默认值
Any

当键不存在时返回的默认值,指定为 Any,如标量、数组等。

q - 输入 Deque
Deque{T}

要从末尾移除元素的双端队列(Deque)。

h - 输入 BinaryHeap
BinaryHeap

要移除并返回顶部元素的二叉堆(BinaryHeap)。

sc - 输入有序关联容器
SortedDict | SortedSet

输入的有序关联容器(SortedDict 或 SortedSet),用于按键删除并返回关联值。

k - 要删除的键
Any

要在 sc 中删除的键。

ss - 输入 SortedSet
SortedSet

要删除并返回第一个键的有序集合(SortedSet)。

# 另请参阅

popfirst! | delete! | deleteat! | splice! | push!