1.Python中何为字典(Dictionary)
在学习汉字时,可以通过字典查找偏旁部首得到某个字的读音释义等一系列相关信息,方便快捷。Python中的字典存储的是键值对,与平常学习使用的字典类似,不过python中的字典是一种重要的数据结构,可以通过键来快速访问和查找值。
2.创建字典
可以使用花括号 ‘{}’ 或者 ‘dict()’ 构造函数来创建一个字典。创建字典时可以为空。
# 创建字典
# 使用花括号创建一个字典
d0 = {}
# 使用dict()创建字典
d1 = dict()
3.字典的格式
格式:键值对,键和值使用冒号隔开,多个键值对之间用逗号隔开
d2 = {
"name": "赵钱",
"age": "50",
"address": "湖南",
"number": "10086"
}
print(d2)
键值对中的值:可以是任意数据类型,如int、float、str、bool、None、[]、()、{}
# 值可以是任意数据类型
d3 = {
"key1": "val1",
"key2": 500,
"key3": 3.1415926,
"key4": False,
"key5": None,
"key6": ["赵县", 600],
"key7": {
"key7-1": 700,
"key7-2": None,
"key7-3": [
"hello",
{
"key7-3-1": "呼呼",
"key7-3-2": [
1, 2, 3
]
}
]
}
}
键值对中的键:键是不可变类型,大多数的键都是字符串。且字典中键不能重复,值可以重复。
不可变类型:int、float、str、bool、None、元组
# 键
d4 = {
500: 123,
3.14: 5.8,
"hello": "hello",
False: True,
None: None,
(): ["hello", 123.5]
}
print(type(d4), d4)
且字典是可变数据类型,可以根据需要动态添加、修改和删除键值对,使用比较灵活。
3.字典的遍历
遍历操作在列表和字符串方法中都有,字典的遍历也就非常类似了。
三种方式:
方式1:遍历所有的键-----for key in d0.keys()
方式2:遍历所有的值-----for value in d0.values()
方式3:遍历获取所有的键值对-----for key, value in d0.items()
# 字典的遍历
# 方式1 遍历所有的键
for key in d0.keys():
print(key, d0[key])
# 方式2 遍历所有的值
for value in d0.values():
print(value)
# 方式3 遍历获取所有的键值对
for key, value in d0.items():
print(key, value)
4.字典的常用操作
len()获取字典中键值对的长度
in 判断字典中是否有这个键
获取键值对:keys()获取所有键,values()获取所有值,items()获取所有键值对。
删除:pop()删除指定键值对,popitem()删除最后一个写的键值对,clear()清空,setdefault()若已经存在该键,则不添加,返回对应的值,不存在则添加到字典中。
其他:update()若存在该键值对,则替换,不存在则添加到末尾,fromkeys()初始化,get()根据键取值,找不到返回空。
d0 = {
"name": "赵钱",
"age": "50",
"address": "湖南",
"number": "10086"
}
# print(d0.keys())
# print(d0.values())
# print(d0.items())
# 删除指定的键,返回对应的值
# r = d0.pop("name")
# print(r, d0)
# 删除最后一个键值对
# r = d0.popitem()
# print(r, d0)
# 清空
# d0.clear()
# print(d0)
# 若存在该键,则返回对应的值,不存在则添加到字典末尾
# r = d0.setdefault("sex", "男")
# print(r, d0)
# 更新,若存在该键值对,则替换,不存在则添加到末尾
# d0.update({
# "number": "10014"
# })
小结
字典是无序的,而键是唯一的,这意味着键值对的顺序在字典中不会被保持,可以对字典进行修改。在使用键来访问字典中的值时,可以通过字典名和键的方式,但是找不到值会报错,此时可以通过使用get()方法来安全获取值,如果键不存在,不会引发异常报错,返回的是None,安全性比较好。