# \`pop!\` doesn't work with \`Iterator.Pairs\`

**URL:** https://discourse.julialang.org/t/pop-doesnt-work-with-iterator-pairs/39786
**Category:** General Usage
**Tags:** question
**Created:** [May 19, 2020, 11:30pm UTC](https://discourse.julialang.org/t/pop-doesnt-work-with-iterator-pairs/39786 "2020-05-19T23:30:06Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![mbaz](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mbaz/32/17295_2.png) [@mbaz](https://discourse.julialang.org/u/mbaz)
#### Post date: [May 19, 2020, 11:30pm UTC](https://discourse.julialang.org/t/pop-doesnt-work-with-iterator-pairs/39786/1 "2020-05-19T23:30:06Z")

</div>

I was surprised by this:

```julia
function test(;args...)
    for k in keys(args)
        pop!(args,k,nothing)
    end
end

```

When called as `test(z=1)`, this error results:

```julia
ERROR: MethodError: no method matching pop!(::Base.Iterators.Pairs{Symbol,Int64,Tuple{Symbol},NamedTuple{(:z,),Tuple{Int64}}}, ::Symbol, ::Nothing)

```

Since the type of `args` is `Base.Iterators.Pairs <: AbstractDict`, I expected `pop!` to work. Other “dictionary-type” functions such as `keys` work fine. Is this missing functionality, or is my expectation wrong?

Is there a function that provides similar functionality to `pop!` for key-value iterators over named tuples?

---

<div class="post-metadata">

### Author: ![mbaz](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mbaz/32/17295_2.png) [@mbaz](https://discourse.julialang.org/u/mbaz)
#### Post date: [May 20, 2020, 2:43am UTC](https://discourse.julialang.org/t/pop-doesnt-work-with-iterator-pairs/39786/2 "2020-05-20T02:43:10Z")

</div>

> [@mbaz](#):
>
> function test(;args…) for k in keys(args) pop!(args,k,nothing) end end

Found a solution:

```julia
function test(;args...)
    d = Dict(args)
    for k in keys(d)
        pop!(d, k, nothing)
    end
end

```

---

<div class="post-metadata">

### Author: ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)
#### Post date: [May 21, 2020, 1:03pm UTC](https://discourse.julialang.org/t/pop-doesnt-work-with-iterator-pairs/39786/3 "2020-05-21T13:03:00Z")

</div>

> [@mbaz](#):
>
> Is this missing functionality, or is my expectation wrong?

I think your expectations are reasonable; please open an issue on Github.

---

<div class="post-metadata">

### Author: ![jishnub](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jishnub/32/33620_2.png) [@jishnub](https://discourse.julialang.org/u/jishnub)
#### Post date: [May 22, 2020, 5:55am UTC](https://discourse.julialang.org/t/pop-doesnt-work-with-iterator-pairs/39786/4 "2020-05-22T05:55:31Z")

</div>

I’ve opened an [issue](https://github.com/JuliaLang/julia/issues/35985)
