当前位置: 首页 > news >正文

【Python 高频 API 速学 ⑤】

一、为什么把字典和集合放同一篇?

• 底层都是哈希表,API 设计高度对称。
• 日常任务无非「读-写-去重-集合运算」,这 5 个方法就能打穿。


二、三件套 & 二板斧一览

名称作用返回值原地?
dict.get(key, default)安全读取值或 default
dict.setdefault(k, v)读不到就写入值(新或旧)
dict.items()同时遍历 k-v可迭代视图
set.add(elem)把元素扔进去None
set.union(other)合并两个集合新集合

三、一行代码场景秀

  1. 统计词频,一行搞定缺省值
freq = {}
for w in words:freq[w] = freq.get(w, 0) + 1      # 或 freq.setdefault(w, 0)
  1. 构造「默认值是列表」的分组字典
groups = {}
for tag, obj in items:groups.setdefault(tag, []).append(obj)
  1. 同时遍历键值,不再手写 for k in d:
for k, v in user.items():print(k, v.upper())
  1. 去重并保持插入顺序(3.7+ 字典有序)
unique = list(dict.fromkeys(seq))
  1. 合并两个标签集合
all_tags = tag_set_a.union(tag_set_b)    # 或 tag_set_a | tag_set_b
  1. 实时黑名单过滤
blocked = {'spam', 'ad'}
msg = [w for w in tokens if w not in blocked]

四、mini 实战:5 行代码实现「购物车合并」

需求:把多份购物车 dict 合并,同商品数量相加。

from collections import Counter
cart1 = {'apple': 3, 'banana': 1}
cart2 = {'apple': 2, 'pear': 5}merged = Counter(cart1)
for k, v in cart2.items():merged[k] = merged.get(k, 0) + vprint(dict(merged))     # {'apple': 5, 'banana': 1, 'pear': 5}

核心动作拆解:
items() 遍历键值
get() 安全读取旧值
• 结果转回普通 dict(如需 JSON 序列化)


五、记忆口令

“字典三件套:get 读,setdefault 写,items 走; 集合两把刀:add 去重,union 合。”

http://www.dtcms.com/a/323049.html

相关文章:

  • 软考 系统架构设计师系列知识点之杂项集萃(120)
  • 使用jlink-gdb-server 加 gdb调试嵌软2
  • 2025年SEVC SCI2区,基于深度强化学习与模拟退火的多无人机侦察任务规划,深度解析+性能实测
  • 压力传感器选型铁三角:介质·安全·精度
  • 多模型动态路由框架实践:提升推理效率与资源利用率的技术方案
  • 数据结构5.(哈希表及数据的排序和查找算法)
  • GPT-5的4个缺点
  • 数据结构初阶(7)树 二叉树
  • 使用qemu运行与GDB调试内核
  • 解决python错误:playwright._impl._errors.TimeoutError: Timeout 30000ms exceeded.
  • STM32——时钟系统
  • BMS三大领域:电池、楼宇与业务管理系统解析
  • STranslate(翻译OCR工具) v1.5.4.801绿色版,屏幕文字秒译,OCR识别零门槛
  • C++ unordered_map 和 unordered_set 的使用
  • 神经网络-local minima and saddle point
  • 【linux基础】Linux目录和Windows目录的区别
  • ACF插件编辑器无法插入相册的原因及解决方案
  • 黑马点评07 - 附近商户/用户签到/UV统计
  • 【Python 高频 API 速学 ⑦ · 完结篇】
  • CrystalDiskInfo 9.0.1 安装教程 - 硬盘检测工具下载安装步骤详解
  • 【智能穿戴设备】2025智能穿戴隐私危机:数据安全保障技术深度剖析
  • RecyclerView 中 ViewHolder
  • C# OnnxRuntime yolov8 纸箱检测
  • 动态规划(相同地方不同状态)
  • 如何控制需求交付节奏
  • 【数据分析】03 - pandas
  • 深入解析QUIC协议:下一代音视频传输技术的突破与实践
  • 前端如何安全存储 API 密钥 —— 两种实用方案
  • 动手学深度学习(pytorch版):第二章节——预备知识(1)——数据操作
  • pytorch llm 计算flops和参数量