05 Day Python字典

字典: 格式:dict{}
数据类型划分:可变数据类型 与 不可变数据类型

可变数据类型 称为:可哈希元组 bool int str
不可变数据类型 称为:不可哈希 如:list dict set

dict key :必须是不可变数据类型
value : 任意数据类型

dict 的优点:
二分查找去查询 (速度快)
存储大量的关系型数据
3.5版本之前是无序的。3.6版本以后好像是有序的。

创建一个dict:
 1 dic = {
 2         'name':['taibai ','alexC','AbC ','egon',' Ritian',' Wusir','  aqc'],
 3         'py9':{
 4                 'time':'1213'
 5                 'learn_money':19800
 6                 'addr':'CBD'
 7 
 8                 },
 9         'age':21
10         }
View Code

增:

 1 增:
 2 dic['name'] = '小刚' #无序添加。有键值对,直接覆盖。
 3 print(dic)
 4 #输出:{'age': 20, 'sec': 'male', 'name': '小刚'}
 5 
 6 dic['high'] = 185 #无序添加。没有键值对,直接添加新内容。
 7 print(dic)
 8 #输出:{'high': 185, 'age': 20, 'name': '小明', 'sec': 'male'}
 9 
10 使用setdefault增,PS:当字典中有键值对时不会做任何改变。没有时才会添加。
11 dic.setdefault('weight') #添加新的键。
12 print(dic)
13 #输出:{'name': '小明', 'weight': None, 'age': 20, 'sec': 'male'}
14 
15 dic.setdefault('weight','150') #添加新的键。还有 值。
16 print(dic)
17 #输出:{'name': '小明', 'age': 20, 'weight': '150', 'sec': 'male'}
18 
19 dic.setdefault('name','小刚') #没有任何变化
20 print(dic)
View Code
删:
 1 dic = {'name':'小明','age':20,'sec':'male'}
 2 
 3 pop 有返回值,按 键 删除。
 4 print(dic.pop('name')) #打印出 删掉的内容
 5 print(dic) #打印删除后的列表
 6 
 7 print(dic.pop('abc','自定义')) #后边自定义位置默认为 None 为了在不确定是否有'abc'情况下 防止报错
 8 输出:自定义
 9 
10 print(dic.pop('abc'))
11 #报错:  File "G:/lod_boy_S9_Python/5Day/test.py", line 49, in <module>
12         print(dic.pop('abc'))
13         KeyError: 'abc'
14 print(dic)
15 
16 print(dic.popitem()) #有返回值 随即删除
17 print(dic)
18 
19 dic.clear() #清空字典
20 print(dic)
21 
22 del dic  #删除字典。会报错。
23 print(dic)
24 
25 del dic['name'] #del 也可以删除 键值对
26 print(dic)
View Code

改:

1 dic = {'name':'小明','age':16,'sec':'male'}
2 dic2 = {'age':20,'sec':'male','love':'moli'}
3 
4 dic['age'] = 16 #通过 键 修改 值
5 print(dic)
6 
7 dic2.update(dic) #将dic1的内容 添加到dic2 遵守 没有就添加,有就替换的原则。
8 print(dic2)
9 print(dic)
View Code

查:

 1 dic = {'age':20,'sec':'male','love':'moli'}
 2 
 3 print(dic.keys()) #列表类型 打印键
 4 print(dic.values()) #列表类型 打印值
 5 print(dic.items()) #无序的情况下 已 元组类型 打印出 键值对
 6 
 7 for i in dic : # 默认已 str类型 打印出 键
 8     print(i)
 9 
10 print(dic.get('张三','该用户不存在'))  #在不确定的情况下 可以查询该键是否存在 并且不报错
11 
12 for k,v in dic.items() :  #去除元组的括号 分别将 键 值 赋给 k v
13     print(k , v)
View Code

 



posted @ 2020-04-04 12:22  kylindemi  阅读(147)  评论(0)    收藏  举报