EADST

Python 字典dict删除元素

# ============================================
# Python 字典(dict)删除元素(4种常用方法)
# 作者:XD
# 日期:2025-10-11
# ============================================

# 在 Python 中,字典(dict)是一种键值对(key-value)数据结构。
# 在实际编程中,我们经常需要删除字典中的某些元素。
# 下面介绍 4 种常用的删除方法:
# 1. 使用 del 关键字按键删除
# 2. 使用 pop() 方法按键删除并返回值
# 3. 使用 popitem() 删除最后一对键值
# 4. 使用 clear() 清空整个字典


# ------------------------------------------------
# 1. del:按键删除元素
# ------------------------------------------------
# del 是 Python 的关键字,用于删除变量、列表元素或字典中的键值对。
# 语法:
# del dictname[key]
# 如果 key 不存在,会抛出 KeyError。

person = {"name": "Alice", "age": 25, "city": "Beijing"}
print(person)

# 删除指定键 'age'
del person["age"]
print(person)

# 删除不存在的键会报错
# del person["gender"]  # KeyError: 'gender'

# 可以先判断键是否存在再删除
if "gender" in person:
    del person["gender"]
else:
    print("键 'gender' 不存在,无法删除。")


# ------------------------------------------------
# 2. pop():按键删除并返回被删除的值
# ------------------------------------------------
# 语法:
# dictname.pop(key[, default])
# 如果指定的 key 存在,则删除并返回对应的 value;
# 如果 key 不存在且未提供 default 参数,则抛出 KeyError。

student = {"id": 101, "name": "Tom", "score": 89}

# 删除键 'score' 并返回它的值
removed = student.pop("score")
print(f"删除的值为:{removed}")
print(student)

# 删除不存在的键并提供默认值(不会报错)
removed = student.pop("grade", "无此项")
print(f"删除结果:{removed}")
print(student)


# ------------------------------------------------
# 3. popitem():删除最后一个键值对
# ------------------------------------------------
# 语法:
# dictname.popitem()
# popitem() 会删除并返回字典中的最后一项(键值对),返回结果是一个元组 (key, value)
# 在 Python 3.7+ 中,字典是有序的,因此 popitem() 删除的是最后插入的那一项。

info = {"a": 1, "b": 2, "c": 3}
print("删除前:", info)

# 删除最后一个键值对
item = info.popitem()
print(f"删除的键值对:{item}")
print("删除后:", info)

# 连续调用 popitem() 直到字典为空
while info:
    print("继续删除:", info.popitem())
print("最终字典为空:", info)


# ------------------------------------------------
# 4. clear():清空整个字典
# ------------------------------------------------
# 语法:
# dictname.clear()
# 清空所有键值对,相当于将字典重置为空。

config = {"host": "localhost", "port": 8080, "debug": True}
print("原字典:", config)

config.clear()
print("清空后:", config)  # 输出:{}


# ------------------------------------------------
# ✅ 四种方法对比总结:
# ------------------------------------------------
# | 方法         | 删除依据 | 是否返回值 | 可删除范围 | 错误情况 |
# |---------------|-----------|-------------|-------------|-----------|
# | del           | 键       | 无          | 指定键     | 键不存在时报错 |
# | pop()         | 键       | 有(返回值) | 指定键     | 键不存在时报错,可指定默认值 |
# | popitem()     | 无(删除最后一项) | 有(返回元组) | 最后一项 | 空字典时报错 |
# | clear()       | 无       | 无          | 所有键值对 | 无 |

# ------------------------------------------------
# 使用建议:
# - 想删除并获取被删值 → 用 pop()
# - 想删除最后一个元素 → 用 popitem()
# - 删除特定键且不需返回 → 用 del
# - 清空整个字典 → 用 clear()
# ------------------------------------------------
相关标签
About Me
XD
Goals determine what you are going to be.
Category
标签云
图标 FP16 Attention XML TTS Git RGB FlashAttention 签证 Bert Firewall Numpy Gemma 强化学习 域名 Diagram Windows WAN PDF Harness 腾讯云 Github Excel VGG-16 Tiktoken v0.dev Random CTC Image2Text 多线程 Land SVR Freesound 长期记忆 Food logger Bitcoin 多进程 第一性原理 Crawler RL Miniforge LeetCode ModelScope DeepStream git-lfs Quantization VPN GGML icon Website Mixtral OpenAI FP64 Linux 飞书 论文速读 BF16 Plotly Agent ms-swift CAM Shortcut OCR Base64 算法题 Bipartite FP32 PIP printf PDB Cloudreve Domain uWSGI DeepSeek Input Ptyhon Hilton tqdm 图形思考法 音频 Hungarian Paddle GPTQ C++ NameSilo HuggingFace Statistics Pandas Vim ResNet-50 CV Django Knowledge Quantize Markdown Permission 顶会 Review Search TensorFlow Tracking IndexTTS2 NLP Clash llama.cpp Pickle LaTeX uwsgi Qwen Jupyter 报税 Dataset TSV 关于博主 Card scipy Pytorch CEIR hf GPT4 Color GIT SAM AI Distillation Bin ChatGPT Web Transformers Baidu SPIE Interview GoogLeNet CLAP 搞笑 Claude CUDA UI 财报 Template FP8 BeautifulSoup SQLite 净利润 Disk Datetime XGBoost WebCrawler 阿里云 Michelin 证件照 Tensor API Augmentation CC Hotel 自我改进 ONNX Use 版权 COCO tar EXCEL Data LoRA InvalidArgumentError v2ray Magnet UNIX torchinfo OpenCV LLAMA Llama Password Vmess Video FastAPI News Ubuntu API网关 Pillow RAR Anaconda Safetensors 继承 PyCharm MD5 TensorRT LLM Algorithm git Qwen2 Python Heatmap Jetson Jev Docker JSON transformers 递归学习法 Nginx QWEN Plate Sklearn 公式 Conda Rebuttal PyTorch 论文 mmap BTC Logo diffusers NLTK Qwen2.5 云服务器 Proxy Translation Paper SQL CSV Breakpoint Streamlit HaggingFace Math YOLO Animate VSCode Google Zip
站点统计

本站现有博文339篇,共被浏览1002211次

本站已经建立2712天!

热门文章
文章归档
回到顶部