字典——dict的定义:test = {"k1":18,2:True,"k3":[11,22,("zi","zai")]}
特点:1. 字典是可迭代对象
2. 字典中元素是无序的,字典是可变数据类型
3. 字典中Key值不能重复,列表、元组、字典、集合等不能作为字典的Key值
任何数据类型都可以作为字典的Value值
1. 查看字典中指定Key值对应的Value值
1 test = {"k1":18,2:True,"k3":[11,22,("zi","zai")]} 2 v1 = test[2] 3 v2 = test["k3"][2][0] 4 print(v1,v2) 5 """ 6 运行结果:True zi 7 结果分析: 8 查看字典中Key=2所对应的Value值,返回给变量v1 9 查看字典中Key="k3"所对应的Value值,并获取该Value中指定索引位置处的值,返回给变量v2
当指定Key值不存在时,运行后报错 10 """
2. 查看字典中所有Key值
1 test = {"k1":18,2:True,"k3":[11,22,("zi","zai")]} 2 for item in test.keys(): 3 print(item) 4 """ 5 运行结果: 6 k1 7 2 8 k3 9 结果分析:依次输出字典中所有Key值 10 """
3. 查看字典中所有Value值
1 test = {"k1":18,2:True,"k3":[11,22,("zi","zai")]} 2 for item in test.values(): 3 print(item) 4 """ 5 运行结果: 6 18 7 True 8 [11, 22, ('zi', 'zai')] 9 结果分析:依次输出字典中所有Value值 10 """
4. 查看字典中所有Key-Value对值
1 test = {"k1":18,2:True,"k3":[11,22,("zi","zai")]} 2 for item in test.items(): 3 print(item) 4 """ 5 运行结果: 6 ('k1', 18) 7 (2, True) 8 ('k3', [11, 22, ('zi', 'zai')]) 9 结果分析:以元组方式依次输出字典中所有Key-Value对值, 10 """
5. 根据输入序列分别创建字典的Key值与Value值
1 test1 = dict.fromkeys(["k1",2,"k3"],(11,22,33)) 2 test2 = dict.fromkeys(["k1",2,"k3"]) 3 for item in test1.items(): 4 print(item) 5 print("---"*20) 6 for item in test2.items(): 7 print(item) 8 """ 9 运行结果: 10 ('k1', (11, 22, 33)) 11 (2, (11, 22, 33)) 12 ('k3', (11, 22, 33)) 13 ------------------------------------------------------------ 14 ('k1', None) 15 (2, None) 16 ('k3', None) 17 结果分析: 18 两个输入序列分别作为字典的Key值和Value值,创建字典的Key-Value对 19 当Value值输入序列为空时,所创建字典Key-Value对中Value=None 20 """
6. 获取字典中指定Key值对应的Value值。当Key值不存在时,返回指定值,默认值定值为None
1 test = {"k1":18,2:True,"k3":[11,22,("zi","zai")]} 2 v1 = test.get("k3") 3 v2 = test.get("k4",11111) 4 v3 = test.get("k4") 5 print(v1) 6 print(v2,v3) 7 """ 8 运行结果: 9 [11, 22, ('zi', 'zai')] 10 11111 None 11 结果分析: 12 获取字典中Key="k3"所对应的Value值 13 由于字典中不存在Key="k4",返回指定值11111,默认指定值为None 14 当Value值输入序列为空时,所创建字典Key-Value对中Value=None 15 """
7. 设置字典中指定Key值对应的Value值。当Key值存在时,不重新设置Value值;当Key值不存在时,设置对应的Key-Value对值
1 test = {"k1":18,2:True,"k3":[11,22,("zi","zai")]} 2 test.setdefault("k1",123) 3 print(test) 4 print("---"*20) 5 test.setdefault("k4",123) 6 print(test) 7 """ 8 运行结果: 9 {'k1': 18, 2: True, 'k3': [11, 22, ('zi', 'zai')]} 10 ------------------------------------------------------------ 11 {'k1': 18, 2: True, 'k3': [11, 22, ('zi', 'zai')], 'k4': 123} 12 结果分析: 13 字典中存在Key="k1"时,不重新设置其对应的Value值,字典元素保持不变 14 字典中不存在Key="k4"时,追加Key="K4"、Value=123的Key-Value对 15 """
8. 更新字典中指定Key值对应的Value值。当Key值存在时,更新对应的Value值;当Key值不存在时,根据Key值添加对应的Key-Value对值
1 test = {"k1":18,2:True,"k3":[11,22,("zi","zai")]} 2 test.update({"k1":123,"k4":456}) 3 print(test) 4 5 """ 6 运行结果:{'k1': 123, 2: True, 'k3': [11, 22, ('zi', 'zai')], 'k4': 456} 7 结果分析: 8 字典中存在Key="k1"时,更新其对应的Value值为123,字典其余元素保持不变 9 字典中不存在Key="k4"时,追加Key="K4"、Value=456的Key-Value对 10 """
9. 拷贝字典中元素
1 test = {"k1":18,2:True,"k3":[11,22,("zi","zai")]} 2 v = test.copy() 3 print(v) 4 5 """ 6 运行结果:{'k1': 18, 2: True, 'k3': [11, 22, ('zi', 'zai')]} 7 结果分析:将字典test中所有元素拷贝并赋值给v 8 """
10. 删除字典中指定Key值对应的Key-Value对,并返回该Key值对应的Value值;当Key值不存在时,返回指定值
1 test = {"k1":18,2:True,"k3":[11,22,("zi","zai")]} 2 v1 = test.pop("k1") 3 print(test) 4 print(v1) 5 print("--"*20) 6 7 v2 = test.pop("k10",11111) 8 print(test) 9 print(v2) 10 11 """ 12 运行结果: 13 {2: True, 'k3': [11, 22, ('zi', 'zai')]} 14 18 15 ---------------------------------------- 16 {2: True, 'k3': [11, 22, ('zi', 'zai')]} 17 11111 18 结果分析: 19 删除字典中Key="k1"对应的Key-Value对,并返回Value值给v1 20 当字典中不存在Key="k10"时,字典元素保持不变,返回指定值11111给v2 21 """
11. 随机删除字典中某一Key值对应的Key-Value对,并返回该Key值及其对应的Value值
1 test = {"k1":18,2:True,"k3":[11,22,("zi","zai")]} 2 k,v = test.popitem() 3 print(test) 4 print(k,v) 5 6 """ 7 运行结果: 8 {'k1': 18, 2: True} 9 k3 [11, 22, ('zi', 'zai')] 10 结果分析:随机删除字典中某一Key值对应的Key-Value对,并返回该Key值及其对应的Value值 11 """
12. 清空字典中所有元素
1 test = {"k1":18,2:True,"k3":[11,22,("zi","zai")]} 2 test.clear() 3 print(test) 4 5 """ 6 运行结果:{} 7 结果分析:清空字典中所有元素,得到一个空白字典 8 """