字典
字典
dict
1.基本结构
2.字典的value可以是任何值
3.布尔值(1,0)可以作为字典的key,和1,0重复,列表,字典不能作为字典的key
4.字典是无序的
5.字典的key:必须为不可变类型,value:任意类型
用途:
存多个值,每一个都有一个映射关系
s = 'hello kk how are you '
data = s.split(' ')
dic = {}
for i in data:
dic.setdefault(i,data.count(i))
print(dic)
# {'hello': 1, 'kk': 1, 'how': 1, 'are': 1, 'you': 1, '': 1}
info ={
"k1":11,
"k2":True,
"k3":[
11,
[],
(),
22,
33,
{
"kk1":"vv1",
"kk2":"vv2",
"kk3":(11,22),
}
],
"k4":(11,22,33,44)
}
print(info["k3"][5]["kk3"][0]) #11
字典支持del删除
info ={
"k1":11,
"k2":True,
"k3":[
11,
[],
(),
22,
33,
{
"kk1":"vv1",
"kk2":"vv2",
"kk3":(11,22),
}
],
"k4":(11,22,33,44)
}
# print(info["k3"][5]["kk3"][0]) #11
del info["k3"][5]["kk1"]
print(info)
#{'k1': 11, 'k2': True, 'k3': [11, [], (), 22, 33, {'kk2': 'vv2', 'kk3': (11, 22)}], 'k4': (11, 22, 33, 44)
info ={
"k1":11,
"k2":True,
"k3":[
11,
[],
(),
22,
33,
{
"kk1":"vv1",
"kk2":"vv2",
"kk3":(11,22),
}
],
"k4":(11,22,33,44)
}
for k,v in info.items():
print(k,v)
# k1 11
# k2 True
# k3 [11, [], (), 22, 33, {'kk1': 'vv1', 'kk2': 'vv2', 'kk3': (11, 22)}]
# k4 (11, 22, 33, 44)
# 根据序列,生成字典,指定统一的值
c = dict.fromkeys(["kdj","sdifj",888],333)
print(c) #{'kdj': 333, 'sdifj': 333, 888: 333}
根据key获取值,key不存在时,可以指定默认值(None)
info ={ True:234, "k1":11, "k2":True, "k3":[ 11, [], (), 22, 33, { "kk1":"vv1", "kk2":"vv2", "kk3":(11,22), } ], "k4":(11,22,33,44) } v = info.get("k2","ppp") print(v) #True
#指定某一个key删除,并获取值
dic = {
"k2":"v2",
"k3":"v3",
}
c = dic.pop("k4",8888)
print(c,dic) #8888 {'k2': 'v2', 'k3': 'v3'}
#随机删除一组键值对
c = dic.popitem()
print(c,dic) #('k3', 'v3') {'k2': 'v2'}
#设置值
#已存在,不设置,获取当前key对应的值
#不存在,设置,获取当前key对应的值
dic = {
"k2":"v2",
"k3":"v3",
}
c = dic.setdefault("k4",6666)
print(c,dic) #6666 {'k2': 'v2', 'k3': 'v3', 'k4': 6666}
#更新
dic = {
"k2":"v2",
"k3":"v3",
}
dic.update({"k4":33333,"k6":7777})
print(dic)#{'k2': 'v2', 'k3': 'v3', 'k4': 33333, 'k6': 7777}
dic.update(k1=1223,k2=343,k3=67678)
print(dic) #{'k2': 343, 'k3': 67678, 'k4': 33333, 'k6': 7777, 'k1': 1223}
##################keys()######value()#####items()#####get()#########

浙公网安备 33010602011771号