字典的使用:
# Author:979
# blog addr:http://www.cnblogs.com/home979/
#key-value
info = { 'stu1101': "TengLan Wu",
'stu1102': "LongZe Luola",
'stu1103': "XiaoZe Maliya",
1:2,
}
info["stu1102"] #查询并返回key对应的value,若不存在就会报错
info.get('stu1103')#查询,不存在就返回none,存在就返回key对应的value(相对于上面那一种不会报错)
info["stu1103"] = "65446" #增加/修改, key对应的值存在即是修改不存在就是增加
del info["stu1101"]#python中通用删除操作
info.pop("stu1101")#标准删除
info.popitem() #随机删除
print(info)#打印整个字典
print('stu1103' in info) #相当于python2.X中的 info.haa_key('stu1103')
#查询key是否有对应的值(value)在字典中存在,存在返回ture,不存在返回false
info.key()#得到所有key
info.value()#得到所有value
av_catalog.update(info)#用info来更新/覆盖av_catalog和info中已存在的key,不存在的key则添加进去
info.items()将字典转成一个列表里套元组,[("KEY","VALUE"),("KEY2","VALUE")]
>>> c = dict.fromkeys([6,7,8],[1,{"name":"alex"},444])
>>> PRINT(C)
{6: [1, {'name': 'alex'}, 444], 7: [1, {'name': 'alex'}, 444], 8: [1, {'name': 'alex'}, 444]}
#创建一个初始化值value相同的列表注意这个值是共用一个内存地址的一个改则都改了不可单独修改除非重新修改过后的值如下例,但key不同
>>> c[7][1]['name'] = "Jack Chen"
>>> print(c)
{6: [1, {'name': 'Jack Chen'}, 444], 7: [1, {'name': 'Jack Chen'}, 444], 8: [1, {'name': 'Jack Chen'}, 444]}
for i in info:
print(i,info[i])
#循环打印key和对应的value
print(i)#只循环打印key
for k,v in info.items():
print(k,v)
#先转成列表再打印,效率比较低,一般不可取
#字典的高级用法,多级字典的嵌套及操作
av_catalog = {
"欧美":{
"www.youporn.com": ["很多免费的,世界最大的","质量一般"],
"www.pornhub.com": ["很多免费的,也很大","质量比yourporn高点"],
"letmedothistoyou.com": ["多是自拍,高质量图片很多","资源不多,更新慢"],
"x-art.com":["质量很高,真的很高","全部收费,屌比请绕过"]
},
"日韩":{
"tokyo-hot":["质量怎样不清楚,个人已经不喜欢日韩范了","听说是收费的"]
},
"大陆":{
"1024":["全部免费,真好,好人一生平安","服务器在国外,慢"]
}
}#代码示例,嵌套可以很多很多层,可以字典套字典,再套列表等等等
av_catalog["大陆"]["1024"][1] = "可以在国内做镜像" #多级嵌套修改,key嵌套尽量不要写中文(因为,如果用的编码不一样就会出乱码)
av_catalog.setdefault("大陆",{"www.baidu.com":[1,2]}) #如果一级key存在就不会修改,则会返回实际字典中存在的value
#不成立才会加一个新的key,和下一级