1、字典的格式
d0 = {}
d1 = dict()
print(type(d0),type(d1))
结果
<class 'dict'> <class 'dict'>
键值对,键和值之间用 :隔开,每个键值对用 , 隔开
d2 = {"name": "李寒香",
"like": "man",
"age": "18",
}
print(d2)
结果
{'name': '李寒香', 'like': 'man', 'age': '18'}
2、字典的值可以是任意数据类型
包括字符串,数字,None值,布尔类型,列表,元组,字典
d3 = {
"key1": "good",
"key2": 100,
"key3": None,
"key4": False,
"ley5": [1, 2, 3],
"key6": (1, 2,),
"key7": {
"key8": "哈哈哈哈",
"key9": [
{
"key10": "呵呵呵呵"
},
{
"key11": "嘿嘿嘿嘿"
}
]
}
}
print(d3)
结果
{'key1': 'good', 'key2': 100, 'key3': None, 'key4': False, 'ley5': [1, 2, 3], 'key6': (1, 2), 'key7': {'key8': '哈哈哈哈', 'key9': [{'key10': '呵呵呵呵'}, {'key11': '嘿嘿嘿嘿'}]}}
3、字典键的类型
键的类型中 ,键不可以重复,值可以,len获取键值对的个数
d4 = {
"name":"李",
100:1,
3.14:"这是pi",
True:"这是布尔值",
False:"这也是布尔值",
# []:"列表是可变数据类型不能是键",
# {}:"字典是可变数据类型不能是键",
(1,):"元组是不可变数据类型可以是键",
True:"这是布尔值",#键相同,会覆盖相同的键,长度不增加
10:"这也是布尔值",#值可以一样,长度会变
}
print(d4,len(d4))
结果
{'name': '李', 100: 1, 3.14: '这是pi', True: '这是布尔值', False: '这也是布尔值', (1,): '元组是不可变数据类型可以是键', 10: '这也是布尔值'}
7
4、字典的设置和获取
设置
d0["name"] 是字典的键,“周” 是把原来键的值改为 周
d0 ={
"name": "李",
"age": 20,
}
d0["name"] = "周"
print(d0)
结果
{'name': '周', 'age': 20}
获取
输入键,获取所对应的值
d0 ={
"name": "李",
"age": 20,
}
print(d0["age"])
结果
20
5、字典的遍历
方式一 遍历所有的键
可以通过键,获得对应的值
d0 ={
"name": "李",
"age": 20,
}
for key in d0.keys():
print(key,d0[key])
结果
name 李
age 20
方式二 遍历所有的值
不能根据值,获得对应的键
d0 ={
"name": "李",
"age": 20,
}
for value in d0.values():
print(value)
结果
李
20
方式三 遍历所有的键值对
d0 ={
"name": "李",
"age": 20,
}
for item in d0.items():
print(item)#打印出是元组
for key,value in d0.items():
print(key,value)
结果
('name', '李')
('age', 20)
name 李
age 20
6、字典的常用操作
(1)item 输出所有的键值对
d0 ={
"name": "李",
"age": 20,
}
print(d0.items())
结果
dict_items([('name', '李'), ('age', 20)])
(2)value 输出所有的值
d0 ={
"name": "李",
"age": 20,
}
print(d0.values())
结果
dict_values(['李', 20])
(3)key 输出所有的键
d0 ={
"name": "李",
"age": 20,
}
print(d0.keys())
结果
dict_keys(['name', 'age'])
(4)pop 删除键,返回键所对应的值
d0 ={
"name": "李",
"age": 20,
}
print(d0.pop("name"))
结果
李
(5)popitem 删除最后写入的键值对
d0 ={
"name": "李",
"age": 20,
}
print(d0.popitem())
结果
('age', 20)
(6)clear 删除所有键值对
d0 ={
"name": "李",
"age": 20,
}
print(d0.clear())
结果
None
(7)fromkeys 创建一个新字典,与原字典无关
d0 ={
"name": "李",
"age": 20,
}
print(d0.fromkeys(["sex","like"],"man"))
结果
{'sex': 'man', 'like': 'man'}
(8)setdefault 如果键存在返回原始值,如果不存在,添加,返回新值
d0 ={
"name": "李",
"age": 20,
}
print(d0.setdefault("age",25))
print(d0.setdefault("sex","男"),d0)
结果
20
男 {'name': '李', 'age': 20, 'sex': '男'}
(9)update 将新字典中所有键值对,合并到原有字典
d0 ={
"name": "李",
"age": 20,
}
d0.update({"age":19})
print(d0)
结果
{'name': '李', 'age': 19}
(10)get 得到键对应的值
取不到返回新值
d0 ={
"name": "李",
"age": 20,
}
print(d0.get("name1", "马云"))
结果
马云
取不到报错
d0 ={
"name": "李",
"age": 20,
}
print(d0["name1"])
结果 报错
Traceback (most recent call last):
File "D:\Python2401\23.字典.py", line 106, in <module>
print(d0["name1"])
~~^^^^^^^^^
KeyError: 'name1'
小结
在使用字典时,要注意键的格式和值的对应,键的类型,还有字典的操作方便应用。