一.定义
info = {
'k1':12, #由键值对组成
'k2':'v2'
}
--字典的value可以是任意值
--列表 字典不能作为key(因为key不能转化为哈希值)
-- 字典是无顺序的
二.常用方法
1.可以进行索引取值(通过索引取值有弊端,如果没有这个key会报错,一般使用get)
v= info['k1']
print(v)
***一般使用get取值下面有解释
****索引赋值
info={}
info['k1']=[11,]
2.支持del 删除
info = {
'k1':12,
'k2':'v2'
}
del info['k1']
print(info)
3.关于循环取值
--默认循环打印键值
for item in info:
print(item)
结果:
k1
k2
--使用info.values()取值
1 info = { 2 'k1':12, 3 'k2':'v2', 4 (1,'g',):'dg', 5 5:'gfhgh' 6 } 7 for item in info.values(): 8 print(item)
结果:
12
v2
dg
gfhgh
--也可以使用info.keys()取key值
1 info = { 2 'k1':12, 3 'k2':'v2', 4 (1,'g',):'dg', 5 5:'gfhgh' 6 } 7 for item in info.keys(): 8 print(item,info[item])
--同时取key和value使用info.items()
info = {
'k1':12,
'k2':'v2',
(1,'g',):'dg',
5:'gfhgh'
}
for k,v in info.items():
print(k,v)
4.字典的KEY不能重复,否则随机取一个值
例如Ture和1不能同时存在,虽然在判断中除0之外数字都为Ture,但在内存中默认Ture为1。
1 info = { 2 'k1':12, 3 'k2':'v2', 4 (1,'g',):'dg', 5 1:'gfhgh', 6 True:555 7 8 } 9 for item in info.keys(): 10 print(item,info[item])
结果为:
k1 12
k2 v2
(1, 'g') dg
1 555
三.提供字典调用的方法
1.fromkeys根据序列创建字典,指定统一的值
v = dict.fromkeys([4,5,6,7],'hyu')
print(v)
**2.用get取值,根据key取值key不存在时,返回默认值None
info = {
'k1':12,
'k2':'v2',
(1,'g',):'dg',
1:'gfhgh',
True:555
}
print(info.get('k2'))
info = {
'k1':12,
'k2':'v2',
(1,'g',):'dg',
5:'gfhgh',
True:555
}
v = info.pop(1)
print(info,v)
4.popitem 随机删去最后一对并获取键值对
info = {
'k1':12,
'k2':'v2',
(1,'g',):'dg',
5:'gfhgh',
}
k,v = info.popitem()
print(info)
print(k,v)
5.setdefault 设置值 如果已经存在,不设置获取当前KEY对应值
设置值 如果不存在,获得设置后的值
info = {
'k1':12,
'k2':'v2',
(1,'g',):'dg',
5:'gfhgh',
}
v = info.setdefault('k1',5)
print(info,v)
6.update 更新字典键值对,两种方式
info.update({'k1':5,'k2':55,8:'ff'})
info.update(h=5,j=55,l=555)
全面发展