📦 归档笔记 — 原创建于 WizNote,仅作归档展示;观点以当年为准,非最新。

字典函数 dict 增 改 查

创建时间2018-08-23最后修改2018-08-24原位置/程序员成长之旅/Python学习/字数898
目录:程序员成长之旅/Python学习

有的时候 我们需要存储一些相对数据 比如输入姓名来获取成绩 这个时候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

print

stuScore . get ( key ) 7

若存在返回value

不存在返回None 8 9 #遍历(每一个元素) 10 for

indexKey

in

stuScore : #每次把key元素传递给 indexKey变量 直到最后一个元素 11

print

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 ()