核心要点

  • 掌握 {}、dict() 多种构造方式

  • 知道键的要求(可哈希)与 dict 保序(3.7+)

  • 熟悉常用操作:get、setdefault、update、推导式

简要回答

dict 用 {}dict() 创建,键须可哈希;Python 3.7+ 保持插入顺序;支持推导式与 fromkeys 等工厂方法。

标准回答

一、先给出结论和背景

  • 创建方式:示例代码可以这样理解:
    d1 = {"a": 1, "b": 2}
    d2 = dict(a=1, b=2)
    d3 = dict([("a", 1), ("b", 2)])
    d4 = {x: x**2 for x in range(5)} # 推导式
    d5 = dict.fromkeys(["a", "b"], 0)
  • 键约束:可哈希且不可变——strinttuple(元素可哈希)等。

二、拆开关键步骤和判断点

  • 常用 API:- d.get(k, default) 安全取值
  • d.setdefault(k, default)
  • d.update(other) / d | other(3.9+ 合并)
  • d.keys() / values() / items()
  • 顺序:3.7+ 官方保证插入顺序;3.6 CPython 已实现。

三、补上落地边界和取舍

  • 应用:配置映射、计数(collections.Counter)、JSON 解析 json.loads → dict。

回答思路

  • 【定义】用一句话说清「如何在 Python 中创建字典」

  • 【原理】讲清关键机制或步骤(2~3 点)

  • 【例子】举一个真实项目、论文或产品中的例子

  • 【对比】与易混淆概念或替代方案比较(如有)

  • 【收尾】总结适用场景 + 一个局限或风险

延伸学习

结合侧栏延伸学习中的知识库与术语;行业背景见 AI 资讯(永久保留)。相关:资讯

常见误区

⚠️ 常见踩坑

误区一:容易答偏的地方:只罗列名词、不会举例;混淆相似概念;忽略工程约束(成本、延迟、数据质量)。不确定时应主动说明假设。

追问

追问 1dict.get 和 dict[key] 有什么区别?

d[k] 键不存在抛 KeyErrord.get(k, default) 返回 default。不确定键是否存在时用 get;确定存在或需区分「无键」与「值为 None」时用 []

追问 2defaultdict 解决什么问题?

collections.defaultdict(list) 访问缺失键时自动 list() 工厂建默认值,适合建图邻接表、分组聚合,避免反复 if key not in d

追问 3如何合并两个字典?

Python 3.9+:d = d1 | d2d1 |= d2。更早版本:{**d1, **d2}d1.update(d2)。后者原地修改 d1。

🔗 相似问题

同一考点的不同问法,换着练更稳

延伸学习

按主题分类的相关资源,便于系统复习