- Python
Python 字典(dict)学习笔记
- 2025-6-18 21:14:23 @
Python 字典(dict)学习笔记
一、字典的基本概念
字典是 Python 中一种非常重要的数据类型,它就像一个“储物柜”,每个物品(值,value)都有对应的标签(键,key),通过标签能快速找到物品,而不是像列表那样通过位置找元素。
特点
- 通过键访问数据:用唯一的键(key)来获取对应的值(value),不是靠下标索引,比如字典里存“姓名”对应“小明”,用
字典["姓名"]
就能拿到“小明” 。 - 无序集合:字典里的键值对没有固定顺序,每次遍历可能顺序不同,但不影响使用。
- 可变长度、异质、可嵌套:长度能动态增减,值可以是字符串、数字、列表、甚至另一个字典等不同类型,也能把字典放到列表或其他字典里。
二、字典的创建(声明)方式
1. 空字典
用大括号{}
创建,就像一个空的储物柜,后续可以往里添加键值对。
empty_dict = {}
print(empty_dict) # 输出:{}
2. 直接定义键值对
把键值对写在{}
里,键和值用:
隔开,不同键值对用,
分隔。比如存食品价格:
foods = {
"汉堡": 15,
"烤鸡": 28,
"薯条": 12
}
print(foods) # 输出:{'汉堡': 15, '烤鸡': 28, '薯条': 12}
3. 用dict()
函数创建
- 方式一:通过
key=value
形式,适合键是简单字符串的情况。
person = dict(name="小明", age=18)
print(person) # 输出:{'name': '小明', 'age': 18}
- 方式二:传入包含键值对元组的列表,元组里第一个元素是键,第二个是值。
student = dict([("name", "小红"), ("gender", "女")])
print(student) # 输出:{'name': '小红', 'gender': '女'}
4. 用dict.fromkeys()
创建
基于一个键的列表,创建值默认是None
的字典,适合快速初始化有相同默认值的字典。
keys = ["a", "b", "c"]
new_dict = dict.fromkeys(keys)
print(new_dict) # 输出:{'a': None, 'b': None, 'c': None}
# 也能指定默认值
new_dict_with_value = dict.fromkeys(keys, 0)
print(new_dict_with_value) # 输出:{'a': 0, 'b': 0, 'c': 0}
三、字典的常用操作
(一)查询操作
字典查询就是根据键找值,有多种方式,应对不同需求。
1. 字典[键]
直接用字典[键]
的形式取值,键存在能拿到对应值,键不存在会报错。
info = {
"name": "小明",
"age": 18
}
print(info["name"]) # 输出:小明
# print(info["gender"]) # 键不存在,会报错 KeyError: 'gender'
2. 字典.get(键)
用get
方法取值,键存在返回对应值,键不存在返回None
(也能自己指定默认返回值),不会报错,很安全。
print(info.get("age")) # 输出:18
print(info.get("gender")) # 键不存在,输出:None
# 指定默认返回值,键不存在时返回设定的内容
print(info.get("gender", "未知")) # 输出:未知
3. 字典.keys()
获取字典所有的键,返回的结果可以遍历,能逐个拿到字典里的键。
keys = info.keys()
print(keys) # 输出:dict_keys(['name', 'age'])
for key in keys:
print(key) # 依次输出:name 、 age
4. 字典.values()
获取字典所有的值,同样可遍历,拿到字典里的各个值。
values = info.values()
print(values) # 输出:dict_values(['小明', 18])
for value in values:
print(value) # 依次输出:小明 、 18
5. 字典.items()
获取字典所有的键值对,以元组(键, 值)
的形式返回,遍历它能拿到每一组键和值。
items = info.items()
print(items) # 输出:dict_items([('name', '小明'), ('age', 18)])
for key, value in items:
print(f"键:{key},值:{value}")
# 输出:键:name,值:小明 ; 键:age,值:18
(二)增加、修改数据
字典里增加或修改数据,都可以用字典[键] = 数据
的形式,根据键是否存在来决定是新增还是修改。
1. 新增数据
当字典里没有这个键时,执行字典[键] = 数据
就是新增键值对。
foods = {
"汉堡": 15,
"薯条": 12
}
# 新增“烤鸡”这个键值对
foods["烤鸡"] = 28
print(foods) # 输出:{'汉堡': 15, '薯条': 12, '烤鸡': 28}
2. 修改数据
当字典里已经有这个键时,执行字典[键] = 数据
就是修改对应的值。
# 把“汉堡”的价格从15改成16
foods["汉堡"] = 16
print(foods) # 输出:{'汉堡': 16, '薯条': 12, '烤鸡': 28}
3. 用update()
合并字典
可以把另一个字典的键值对合并到当前字典里,键存在就更新值,键不存在就新增。
original_dict = {"a": 1, "b": 2}
new_dict = {"b": 3, "c": 4}
original_dict.update(new_dict)
print(original_dict) # 输出:{'a': 1, 'b': 3, 'c': 4},b的值被更新,c是新增的
(三)删除数据
删除字典里的键值对,常用del
语句和pop()
方法。
1. del
语句删除
直接用del 字典[键]
,删除指定键值对,没有返回值,字典里就没有这个键值对了。
info = {
"name": "小明",
"age": 18
}
del info["age"]
print(info) # 输出:{'name': '小明'}
2. pop()
方法删除
字典.pop(键)
会删除指定键值对,并且返回被删除的值,方便后续用到这个值。
foods = {
"汉堡": 15,
"薯条": 12
}
deleted_value = foods.pop("汉堡")
print(deleted_value) # 输出:15 ,拿到被删除的值
print(foods) # 输出:{'薯条': 12} ,汉堡对应的键值对被删除
四、字典的遍历
常结合for
循环,用keys()
、values()
、items()
方法遍历字典的键、值、键值对。
1. 遍历键
info = {
"name": "小明",
"age": 18
}
for key in info.keys():
print(key) # 输出:name 、 age
2. 遍历值
for value in info.values():
print(value) # 输出:小明 、 18
3. 遍历键值对
for key, value in info.items():
print(f"键:{key},值:{value}")
# 输出:键:name,值:小明 ; 键:age,值:18
五、综合示例(字典操作实践)
下面通过一个管理个人信息字典的示例,把前面的操作串起来看看:
# 初始化个人信息字典
person_info = {
"name": "小明",
"age": 18,
"gender": "男"
}
# 1. 查询操作
print("查询name的值:", person_info["name"]) # 用[]查询
print("查询age的值(用get):", person_info.get("age"))
print("所有键:", list(person_info.keys())) # 转成列表方便查看
print("所有值:", list(person_info.values()))
print("所有键值对:", list(person_info.items()))
# 2. 增加、修改操作
# 新增数据
person_info["tel"] = "123456789"
print("新增tel后的字典:", person_info)
# 修改数据
person_info["age"] = 19
print("修改age后的字典:", person_info)
# 3. 删除操作
# 用del删除gender
del person_info["gender"]
print("删除gender后的字典:", person_info)
# 用pop删除tel并拿到值
deleted_tel = person_info.pop("tel")
print("被删除的tel值:", deleted_tel)
print("删除tel后的字典:", person_info)
# 4. 遍历操作
print("遍历键值对:")
for key, value in person_info.items():
print(f"键:{key},值:{value}")
运行这段代码,就能看到字典各种操作的执行效果啦,多动手试试,就能熟练掌握字典的用法咯,字典在处理像用户信息、商品数据等有对应关系的数据时特别好用,赶紧用起来吧!
1 条评论
-
admin SU @ 2025-6-24 19:03:42
# 方式1:直接通过键值对创建字典 d1 = {"键1": 100, "键2": 50} print(d1) # 输出:{'键1': 100, '键2': 50} # 方式2:创建空字典 d2 = {} print(d2, type(d2)) # 输出:{} <class 'dict'> # 说明:空字典的type为dict,是Python中用于存储键值对的数据结构 # 方式3:使用dict()函数并以关键字参数形式创建字典 d3 = dict(addr="中国", name="张三", age=15) print(d3) # 输出:{'addr': '中国', 'name': '张三', 'age': 15} # 说明:关键字参数的键会自动转为字符串,值可以是任意类型 # 方式4:使用dict()函数并传入元组列表创建字典 d4 = dict([("addr", "中国"), ("name", "张三"), ("age", 65)]) print(d4) # 输出:{'addr': '中国', 'name': '张三', 'age': 65} # 说明:每个元组包含(键, 值),适用于键需要动态生成或包含特殊字符的场景 # 方式5:使用fromkeys()类方法创建字典 d5 = dict.fromkeys(["addr", "name", "age", "sex"]) print(d5) # 输出:{'addr': None, 'name': None, 'age': None, 'sex': None} # 说明: # 1. fromkeys()会以列表元素为键创建字典 # 2. 若不指定值,默认所有键对应的值为None Python 等编程语言中,None是表示 “空值” 的关键字 # 3. 可通过第二个参数指定初始值,如dict.fromkeys(keys, 0)
- 1