{6: [1, {'name': 'alex'}, 444], 7: [1, {'name': 'alex'}, 444], 8: [1, {'name': 'alex'}, 444]}
{6: [1, {'name': 'chen'}, 444], 7: [1, {'name': 'chen'}, 444], 8: [1, {'name': 'chen'}, 444]}
1.字典表现为key:value的形式,字典是无序的,通过key定位即可,key尽量不要写中文。
2.现在定义一个字典:
info={
'1':"Wu", #1为key
'2':"la",
'3':"ya"
}
(1)查询:print(info["1"]),查询结果为 wu
(2)修改与新增:info['4']="武",如果有该key值则修改,没有则增加:
info['1']="武"
print(info)
info['4']="武" #存在即修改,不存在即增加
print(info)
输出结果如下:
{'1': '武', '2': 'la', '3': 'ya'}
{'1': '武', '2': 'la', '3': 'ya', '4': '武'}
(3)删除:有三种方法,del info["1"];info.pop("2") #必须有下标,否则会报错;#info.popitem() #随机删除,一般不用。
(4)定义一个新的字典
b={
'1':"AI",
1:3,
2:5
}
这时将info字典进行更新,info.update(b),如果存在key即更新,如果不存在即插入,则对info进行更新后显示如下:
{'1': 'AI', '2': 'la', '3': 'ya', 1: 3, 2: 5}
print(info.items()),此输出结果为:dict_items([('1', 'AI'), ('2', 'la'), ('3', 'ya'), (1, 3), (2, 5)])。
3.新建/初始化一个字典: c=info.fromkeys([6,7,8],"test"),也可以将info写成dict,
c=dict.fromkeys([6,7,8],"test") #初始化一个字典,6,7,8为key,value可以为空,也可以赋值,三个key共享一个地址。
如果写一个有字典嵌套的key,如下:三个key共享一个地址
c=dict.fromkeys([6,7,8],[1,{"name":"alex"},444])
print(c)
c[7][1]['name']="chen" #三个key共享一个地址
print(c)
输出结果为:
{6: [1, {'name': 'alex'}, 444], 7: [1, {'name': 'alex'}, 444], 8: [1, {'name': 'alex'}, 444]}
{6: [1, {'name': 'chen'}, 444], 7: [1, {'name': 'chen'}, 444], 8: [1, {'name': 'chen'}, 444]}
4.print(info.get('4')),如果在字典中存在该key,则返回value,如果不存在,返回None;
print('3' in info),存在该key值,返回True,不存在,返回False
5.字典的循环:与其他循环语句并无差别
for i in info: print(i,info[i]) for k,v in info.items(): print(k,v)
6.字典的嵌套使用:
catlog={
"欧美":{
"www.yourporn.com":["免费的最大","质量一般"],
"www.pornhub.com":["免费的很大","质量比yourporn好"]
},
"日韩":{
"tokoy-hot":["质量不知道","听说收费"]
},
"大陆":{
"1024":["免费","服务器在国外"]
},
}
(1)修改,与不嵌套的字典修改方法差不多,catlog["大陆"]["1024"][1]="可以在国内做镜像"
(2)setdefault能取到key值便输出该key原有的value,取不到便新增。
catlog.setdefault("taiwan",{"www.baidu.com":[1,2]}) #能取到key值就输出,不能取到就新增
catlog.setdefault("大陆",{"www.baidu.com":[1,2]})
因此在输出结果中增加'taiwan': {'www.baidu.com': [1, 2]},大陆的value并未发生改变。