AI資格ドリル
資格を選ぶ↓

用語比較

辞書の pop() と popitem() の違い|キー指定か末尾か(Python3基礎)

辞書から要素を取り出して削除するメソッドには、pop() と popitem() があります。どちらも取り出した要素は辞書から消えます。

違いは取り出す対象の決め方で、pop() はキーを自分で指定し、popitem() は指定せず、最後に追加された組を取り出します。

このページは、pop() にキーを渡し忘れてエラーになった人や、popitem() が返すものが値だけなのか組なのか迷った人向けです。決まりは、Python 公式ドキュメントの組み込み型(辞書)の項に書かれています。

この記事の根拠と出典

各セクションの見出しの下に、公式資料で確認した内容か編集部の整理かをラベルで示しています。 試験日・料金・申込条件・試験方式は変わることがあるため、申込前に公式サイトで確認してください。Python3エンジニア認定基礎試験の一次情報確認日: 2026-09-18。

結論

d.pop(key)

key があればその値を返して辞書から削除する。無ければ KeyError。default を渡すと、無いときはそれを返す。

d.popitem()

(キー, 値)の組を後ろから順(LIFO)に1組取り出して削除する。辞書が空なら KeyError。

共通

取り出した要素は辞書から消える。

違いを表で確認

比較軸d.pop(key)d.popitem()
引数pop(key) または pop(key, default)popitem()(引数なし)
戻り値(d は {"a": 1, "b": 2, "c": 3})d.pop("b"):2(値だけ)d.popitem():('c', 3)(キーと値の組)
存在しないときd.pop("z"):KeyError。d.pop("z", 0) は 0空の辞書の popitem():KeyError
取り出す要素指定したキーの要素挿入順で最後の要素

Python3エンジニア認定基礎試験の学習に使う書籍(Amazon)

試験範囲を通して読むときの1冊です。読んだ章は、このサイトの章別問題で確かめられます。

PR

ほかの資格を含む参考書・問題集の一覧を見る

どこで迷っているかを切り分ける

01

pop() にキーを渡さずエラーになった人

公式ドキュメントでは、辞書の pop() は pop(key) か pop(key, default) の形で、キーが必要です。キーを渡さないなら popitem() です。リストの pop() は引数なしで末尾を取り出すので、混同しやすい点です。

02

存在しないキーで KeyError になった人

公式ドキュメントには、default を渡さずキーが無いと KeyError になると書かれています。Python 3.9.6 では d.pop("z") が KeyError で、d.pop("z", 0) は 0 を返し、辞書は変わりませんでした。

03

popitem() がどの要素を返すか迷った人

公式ドキュメントでは、popitem() は LIFO(後に入れたものが先)の順で返し、3.7 からこの順序が保証されたと説明されています。Python 3.9.6 では {"a": 1, "b": 2, "c": 3} の popitem() が ('c', 3)、次が ('b', 2) でした。

具体例で使い分ける

例 1

キーを指定して値を取り出す

d = {"a": 1, "b": 2, "c": 3} に対して、d.pop("b") を実行します。

  • 公式ドキュメントは、pop() を、キーがあればその値を返して削除するメソッドと説明しています。
  • 戻り値は値だけで、キーは含まれません。

結論: 戻り値は 2 で、d は {'a': 1, 'c': 3} になります。Python 3.9.6 で同じ結果を確認しました。

例 2

最後の組を取り出す

d = {"a": 1, "b": 2, "c": 3} に対して、d.popitem() を実行します。

  • 公式ドキュメントは、popitem() を(キー, 値)の組を取り出して削除するメソッドと説明しています。
  • 組は LIFO の順で返されるので、最後に追加された "c" の組が先です。

結論: 戻り値は ('c', 3) で、d は {'a': 1, 'b': 2} になります。Python 3.9.6 で同じ結果を確認しました。

問題文から答えを選ぶ手順

  1. 1

    取り出す要素を自分で決めるか

    キーを指定するなら pop() です。どれでもよく、最後の1組が欲しいなら popitem() です。

  2. 2

    欲しい戻り値を決める

    値だけなら pop()、キーと値の組なら popitem() です。

  3. 3

    無いときの扱いを決める

    キーが無いかもしれないなら pop(key, default) にします。popitem() は空の辞書で KeyError です。

試験での見分け方

  • 1pop() はキーを指定し、その値を返す。
  • 2popitem() は引数なしで、最後に追加された(キー, 値)の組を返す。
  • 3pop(key) はキーが無いと KeyError。default を渡せば避けられる。
  • 4popitem() は空の辞書で KeyError。

誤答しやすい選択肢

pop() の戻り値にキーも含まれると思う

修正: pop(key) の戻り値は値だけです。組が欲しいなら popitem() を使います。

popitem() が最初の要素を返すと思う

修正: LIFO の順なので、最後に追加された組が先に返ります。

popitem() にキーを渡す

修正: popitem() は引数を取りません。キーを指定するなら pop(key) です。

確認問題

Q1d = {"a": 1, "b": 2} のとき、d.pop("a") は何を返しますか?

答え: 1

指定したキーの値だけを返し、その要素を辞書から削除します。

Q2d = {"a": 1, "b": 2} のとき、d.popitem() は何を返しますか?

答え: ('b', 2)

最後に追加された(キー, 値)の組を返します。

Q3d = {"a": 1} のとき、d.pop("z", 0) は何を返しますか?

答え: 0

キーが無いときは default の 0 を返し、辞書は変わりません。

到達チェック

  • pop() がキーを指定して値を返すと言える
  • popitem() が最後に追加された組を返すと言える
  • pop() にキーが無いときの KeyError と default の役割を言える
  • popitem() が空の辞書で KeyError になると言える

同じ資格で次に知りたいこと

よくある質問

Qリストの pop() と同じですか?

A

公式ドキュメントでは別のメソッドです。リストの pop() は位置を指定でき、引数なしなら末尾を取り出します。辞書の pop() はキーが必要です。

Q3.7 より前の popitem() はどうでしたか?

A

公式ドキュメントでは、3.7 より前は任意のキーと値の組を返したと説明されています。3.7 から LIFO の順が保証されています。

Qどちらが速いですか?

A

このページでは速度を比べていません。取り出す要素の決め方で選びます。

次に見る比較

執筆: ミナト編集部(運営者情報を見る)