Python中的字典
目录
1 字典的定义
2 字典的键与值
3 字典的基本操作
3.1 获取与修改
3.2 字典的遍历
3.3 字典的操作
3.3.1 len()
3.3.2 in
3.3.3常用方法
1 字典的定义
字典(Dictionary)是Python中的一种数据类型,用于存储键值对(key-value pairs)。它是可变的、无序的,且每个键必须是唯一的。
字典使用花括号 {} 来表示,键和值之间使用冒号 : 分隔,键值对之间使用逗号分隔。
字典可以通过一下三种方式创建:
(1)通过花括号{}直接创建
(2)通过方法创建
(3)直接创建花括号并输入里面内容
# 字典的定义
d0 = {}
d1 = dict()
print(type(d1), print(type(d0)))
# 字典的格式是键(key)值(value)对
# 键与值之间使用冒号隔开 多个键值对之间使用逗号隔开
d2 = {
"name": "小美",
"age": 18,
"address": "郑州",
}
print(d2)
2 字典的键与值
每个键必须是唯一的,而值可以是任意类型的对象,如字符串、整数、浮点数、列表等。
d3 = {
"key1": "value1",
"key2": 100,
"key3": 3.14,
"key4": False,
"key5": None,
"key6": [1, 2, 3],
"key7": (100,),
"key8": {
"key11": "value1",
"key12": [
{
"key1": 15,
"key2": "河南",
},
{
"key3": 23,
"key4": "郑州"
}
]
}
}
print(d3)
d4 = {
"name": "小白",
100: 100,
3.14: 3.14,
True: "这是布尔值",
None: "这是个空",
# [1,2,3]: "可变类型列表不可以作为键"
(): "这是元组",
# {}: "字典不可以作为键"
}
print(d4)
d4 = {
"name": "小白",
100: 100,
3.14: 3.14,
True: "这是布尔值",
None: "这是个空",
# [1,2,3]: "可变类型列表不可以作为键"
(): "这是元组",
# {}: "字典不可以作为键"
True: "我会覆盖",
}
print(d4)
3 字典的基本操作
3.1 获取与修改
(1)修改
字典名[健名] = 值,如果键已经存在则替换
d0 = {
"name": "小美",
"age": 20
}
print(d0, id(d0))
# 设置键 如果键已经存在则替换
d0["name"] = "小帅"
print(d0, id(d0))
# 获取键所对应的值
print(d0["name"], d0["age"])
(2)获取
字典名[键名] = 值
d0 = {
"name": "小美",
"age": 20
}
print(d0["name"])
3.2 字典的遍历
(1)方式1 遍历字典的所有键
d1 = {
"name": "小美",
"age": 20,
"addr": "郑州"
}
# 方式1 遍历字典的所有键
for key in d1.keys():
print(key)
(2)方式2 遍历字典的所有值
d1 = {
"name": "小美",
"age": 20,
"addr": "郑州"
}
# 方式2 遍历字典的所有值
for value in d1.values():
print(value)
(3)方式3 遍历字典的所有键值对
有两种形式都可以比爱哪里键值对,第一种方式显示的是元组形式。
d1 = {
"name": "小美",
"age": 20,
"addr": "郑州"
}
# 方式3 遍历字典的所有键值对
for item in d1.items():
print(item)
for key, value in d1.items():
print(key, value)
3.3 字典的操作
3.3.1 len()
获取键值对个数
d1 = {
"name": "小美",
"age": 20,
"addr": "郑州"
}
# len 获取字典键值对个数
print(len(d1))
3.3.2 in
判断一个键是否在字典中
d2 = {
"name": "小美",
"age": 20,
"addr": "郑州",
}
print("name" in d2, "sex" in d2)
3.3.3常用方法
(1)遍历
d2 = {
"name": "小美",
"age": 20,
"addr": "郑州",
}
# 所有的键
print(d2.keys())
# 所有的值
print(d2.values())
# 所有的键值对
print(d2.items())
(2)删除
a) pop 根据键删除指定的键值对 返回值
d2 = {
"name": "小美",
"age": 20,
"addr": "郑州",
}
# 根据键删除指定的键值对 返回值
r = d2.pop("name")
print(r, d2)
b) popitem 删除最后一个写的键值对(python 独有)
d2 = {
"name": "小美",
"age": 20,
"addr": "郑州",
}
# 删除最后一个写的键值对(python 独有)
r = d2.popitem()
print(r, d2)
c) clear 清空字典
d2 = {
"name": "小美",
"age": 20,
"addr": "郑州",
}
# 清空
d2.clear()
print(d2)
(3)修改
a)setdefault () 如果已经存在该键,则返回原始值;不存在则添加
d3 = {
"name": "小美",
"age": 20,
"addr": "郑州",
}
# 如果已经存在该键,则返回原始值
r = d3.setdefault("age", 25)
print(r, d3)
# 不存在则添加
r = d3.setdefault("sex", "女")
print(r, d3)
b)update () 将新字典中所有键值对 合并到原有字典
d3 = {
"name": "小美",
"age": 20,
"addr": "郑州",
}
# 将新字典中所有键值对 合并到原有字典
r = d3.update({
"sex": "N",
"age": 23
})
# update 无返回值
print(r, d3)
c) fromkeys()初始化一个字典
# 初始化一个字典
d4 = dict.fromkeys(["key1", "key2", "key3"], 100)
print(d4)
(4)get
根据键获取值,取不到返回None 、取不到也可以指定默认值
字典(键)获取时, 如果取不到会报错
d3 = {
"name": "小美",
"age": 20,
"addr": "郑州",
}
# 取不到返回None
print(d3.get("name1", "小帅"))
# 取不到报错
print(d3["name1"])
作者:火爆辣椒abc