摘要:在 Python 中,字典(dict)是一种可变的键值映射容器。它由键(key)和值(value)组成,每个键必须唯一且可哈希,而值可以是任意对象。
在 Python 中,字典(dict)是一种可变的键值映射容器。它由键(key)和值(value)组成,每个键必须唯一且可哈希,而值可以是任意对象。
字典是 Python 最常用的数据结构之一,适合存储映射关系,如学生成绩表、配置项等。
一、创建字典的常见方式
1、使用字面量 {}
最常见、最直观的方式:
d1 = {"a": 1, "b": 2, "c": 3}print(d1) # {'a': 1, 'b': 2, 'c': 3}可嵌套使用:
nested = {"student": {"name": "Alice", "age": 20}}print(nested["student"]["name"]) # Alice2、使用 dict 构造函数
可以从多种数据结构创建字典:
# 关键字参数d2 = dict(a=1, b=2)print(d2) # {'a': 1, 'b': 2}# 序列(二元组列表)d3 = dict([("a", 1), ("b", 2)])print(d3) # {'a': 1, 'b': 2}# 另一种常见场景:zip 打包keys = ["name", "age"]values = ["Tom", 18]d4 = dict(zip(keys, values))print(d4) # {'name': 'Tom', 'age': 18}3、使用字典类方法 fromkeys
快速生成多个键,并赋予相同的默认值:
d5 = dict.fromkeys(["a", "b", "c"], 0)print(d5) # {'a': 0, 'b': 0, 'c': 0}4、字典推导式
与列表推导式类似,但使用的是花括号 {}:
# 数字及其平方squares = {x: x**2 for x in range(5)}print(squares) # {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}# 条件筛选evens = {x: "even" for x in range(10) if x % 2 == 0}print(evens) # {0: 'even', 2: 'even', 4: 'even', 6: 'even', 8: 'even'}推导式适合一行生成映射关系,简洁高效。
5、空字典
empty1 = {}empty2 = dictprint(empty1, empty2) # {} {}二、创建字典的常见误区
1、字典与集合 {} 混淆
s = {1, 2, 3} # 这是集合,不是字典d = {"a": 1, "b": 2} # 这是字典2、键必须可哈希
列表、字典、集合等不可哈希对象不能作为键:
# d = {[1, 2]: "value"} # ❌ TypeError: unhashable type: 'list'd = {(1, 2): "value"} # ✅ 元组可作为键3、推导式中键重复会覆盖
d = {x % 2: x for x in range(5)}print(d) # {1: 3, 0: 4} 后面的键值对覆盖了前面的小结
字典是 Python 的可变键值容器,常见的创建方式包括:
1、字面量 {}
2、dict 构造函数
3、fromkeys
4、字典推导式
常见误区:不要把集合和字典混淆;键必须可哈希;推导式遇到重复键会覆盖。
“点赞有美意,赞赏是鼓励”
来源:日光灯下的璀璨