字典函数 dict 增 改 查
有的时候 我们需要存储一些相对数据 比如输入姓名来获取成绩 这个时候list数列和元组Tuple就不是很好用了 我们需要的是把名字和数据相关联起来 Python中的 dick函数就是专门干这个的
dick的特点: 1.给定一个名字(称之为key) 查询出一个数据(称之为value) 2.由于查询时是依照key查询的, 所以Key必须是唯一且 不可能改 的 Value可以重复 更改 3. 存储key-value的时候是没有顺序的(通过多次打印同一个dick就可以看出来) 这也是和list的一大区别 优点是更快 缺点是占用内存资源大 随着数据量速度下降
反过来 list占用内存资源小 且有顺序
key特点: Python的基本类型 如字符串、整数、浮点数 都是不可变的, 都可以作为 key 。但是list是可变的,就不能作为 key。
不可变这个限制仅作用于key,value是否可变无所谓:demo
{ '123': [1, 2, 3], # key 是 str,value是list 123: '123', # key 是 int,value 是 str ('a', 'b'): True # key 是 tuple,并且tuple的每个元素都是不可变对象,value是 boolean }
x
1 { 2
'123' : [ 1 , 2 , 3 ],
key 是 str,value是list
3
123 : '123' ,
key 是 int,value 是 str
4 ( 'a' , 'b' ): True
key 是 tuple,并且tuple的每个元素都是不可变对象,value是 boolean
5 }
#定义 一个dick字典 #名称={ '数据1'=233, '数据2'=666 } stuScore={ 'Luck'=90, 'Bobo'=85, 'Jack'=80 } #由于其实集合,我们可以用len()函数查询大小 print len(stuScore) 返回3
x 10
1 #定义 一个dick字典 2 #名称={ 3
'数据1'
233 , 4
'数据2'
666 5 } 6 stuScore ={ 7
'Luck'
90 , 8
'Bobo'
85 , 9
'Jack'
80 10 } 11 #由于其实集合,我们可以用len()函数查询大小 12 print
len ( stuScore ) 13 返回3 #访问 一个dick字典 #我们可以直接用 名称[key] 注意若key是字符串需要用引号引起来 名称['key'] #但是注意 以上方法虽然可以查询正常数据 但若没有判断错误的话会引起报错 #判断方法: if key in stuScore #我们还可以用一种更安全的方法 print stuScore.get(key) 若存在返回value 不存在返回None #遍历(每一个元素) for indexKey in stuScore: #每次把key元素传递给 indexKey变量 直到最后一个元素 print key,":",stuScore[indexKey]
x 10
1 #访问 一个dick字典 2 #我们可以直接用 名称[key] 注意若key是字符串需要用引号引起来 名称['key'] 3 #但是注意 以上方法虽然可以查询正常数据 但若没有判断错误的话会引起报错 4
#判断方法: if key in stuScore 5 #我们还可以用一种更安全的方法 6
stuScore . get ( key ) 7
若存在返回value
不存在返回None 8 9 #遍历(每一个元素) 10 for
indexKey
in
stuScore : #每次把key元素传递给 indexKey变量 直到最后一个元素 11
key , ":" , stuScore [ indexKey ]
#修改和增加元素 stuScore['Lucy']=95 #修改Lucy成绩为95 stuScore['Pack']=93 #本身没有key'Pack' 所以创建一个 key为'Pack' 值为93 的字典 k' 值为93 的字典
x
1 #修改和增加元素 2 stuScore [ 'Lucy' ]= 95
#修改Lucy成绩为95 3 stuScore [ 'Pack' ]= 93
#本身没有key'Pack' 所以创建一个 key为'Pack' 值为93 的字典 #获取所有key 或者 value stuScore.keys() stuscore.values()
1
1 #获取所有key 或者 value 2 stuScore . keys () 3 stuscore . values ()