pin_drop当前位置:知识文库 ❯ 图文

Python字典pop()方法

概述

pop() 方法用于删除字典中指定键的键值对,并返回对应的值。与 del 语句不同,pop() 会返回被删除的值,且可以指定键不存在时的默认返回值,避免抛出异常。


语法

代码示例

dict.pop(key[, default])
参数 说明
key 要删除的键
default 可选,键不存在时的默认返回值

返回值:被删除键对应的值,或默认值


基本用法

删除并返回值

代码示例

person = {"name": "Alice", "age": 25, "city": "Beijing"}
removed = person.pop("city")
print("被删除的值:", removed)
print("剩余字典:", person)

输出:

代码示例

被删除的值: Beijing
剩余字典: {'name': 'Alice', 'age': 25}

键不存在时返回默认值

代码示例

person = {"name": "Alice", "age": 25}
removed = person.pop("city", "未知")
print("返回值:", removed)
print("字典:", person)

输出:

代码示例

返回值: 未知
字典: {'name': 'Alice', 'age': 25}

键不存在且无默认值

代码示例

person = {"name": "Alice"}
person.pop("city")

输出:

代码示例

KeyError: 'city'

pop 与 del 对比

特性 pop() del
返回值 被删除的值
默认值 支持 不支持
键不存在 可返回默认值或 KeyError KeyError
典型场景 取出并删除 仅删除

代码示例

d = {"a": 1, "b": 2, "c": 3}

val = d.pop("b")
print(f"pop返回: {val}, 字典: {d}")

del d["c"]
print(f"del后: {d}")

输出:

代码示例

pop返回: 2, 字典: {'a': 1, 'c': 3}
del后: {'a': 1}

常见应用场景

提取并删除

代码示例

config = {"host": "localhost", "port": 3306, "debug": True}
debug = config.pop("debug", False)
print(f"debug: {debug}")
print(f"配置: {config}")

输出:

代码示例

debug: True
配置: {'host': 'localhost', 'port': 3306}

安全删除

代码示例

cache = {"a": 1, "b": 2}
cache.pop("c", None)
print(cache)

输出:

代码示例

{'a': 1, 'b': 2}

逐个清空

代码示例

d = {"x": 1, "y": 2, "z": 3}
while d:
    key, val = d.popitem()
    print(f"弹出: {key} = {val}")

注意事项

提示:键不存在且无默认值:会抛出 KeyError,建议始终提供默认值。

提示:原地修改:pop() 会修改原字典。

提示:与列表 pop 不同:字典 pop() 需要指定键,列表 pop() 可按索引。


小结

  • pop(key) 删除指定键并返回值

  • pop(key, default) 键不存在时返回默认值,不报错

  • del 的核心区别:pop 返回被删除的值

  • 安全删除建议使用 pop(key, None)


常见问题

pop() 与 del 有什么区别?

pop() 返回被删除的值且支持默认值参数,del 无返回值且不支持默认值。pop() 更安全,del 更直接。

pop() 键不存在时会怎样?

如果没有提供默认值,会抛出 KeyError。如果提供了默认值,则返回默认值而不报错。

如何安全删除字典中可能不存在的键?

推荐使用 pop(key, None) 方式,即使键不存在也不会报错,返回 None 即可。

popitem() 与 pop() 有什么区别?

pop() 需要指定键来删除,popitem() 不需要参数,会删除并返回最后一个插入的键值对(Python 3.7+)。

练习1

编写一个函数 extract_fields(data, fields),从字典 data 中提取指定的字段列表,提取后从原字典中删除这些字段,返回提取的键值对组成的新字典。

练习2

给定字典 inventory = {"apple": 5, "banana": 3, "orange": 0, "grape": 2},删除所有数量为 0 的水果(使用 pop 方法),打印清理后的库存。

标签: 字典方法 pop() 删除键值 默认值 Python教程

本文涉及AI创作

内容由AI创作,请仔细甄别

list快速访问

上一篇: Python字典keys() values() items()方法 下一篇: Python字典setdefault()方法

poll相关推荐