字典操作
字典一种key - value 的数据类型,使用就像我们上学用的字典,通过笔划、字母来查对应页的详细内容。
字典的特性:
-
dict是无序的
-
key必须是唯一的,so 天生去重
1 #语法 2 info = { 3 'AAA' : "11111", 4 'BBB' : "22222", 5 'CCC' : "33333", 6 'DDD' : "44444", 7 'EEE' : "55555" 8 } 9 10 #访问 11 print("---------------------------访问-----------------------------") 12 print(info["AAA"]) 13 #输出11111 14 15 16 17 #增加和修改 18 print("---------------------------增加和修改-----------------------------") 19 info['FFF'] = "66666" 20 info['AAA'] = "77777" 21 print(info) 22 #输出{'AAA': '77777', 'BBB': '22222', 'CCC': '33333', 'DDD': '44444', 'EEE': '55555', 'FFF': '66666'} 23 24 25 #删除 26 print("---------------------------删除-----------------------------") 27 info.pop("FFF") #标准删除姿势 28 del info["EEE"] #第二种删除方法 29 info.popitem() #随机删除 30 print(info) 31 #输出{'AAA': '77777', 'BBB': '22222', 'CCC': '33333'} 32 33 #查找 34 print("---------------------------查找-----------------------------") 35 print("AAA" in info ) #输出True 标准用法 36 print(info.get("BBB")) #输出22222 get获取 37 print(info["AAA"]) #输出77777 38 #print(info["DDD"] ) #报错,如果一个key不存在,就报错,get不会,不存在只返回None 39 40 41 42 #Values 43 print("---------------------------Values-----------------------------") 44 print(info.values()) #输出dict_values(['77777', '22222', '33333']) 以列表返回字典中的所有值 45 46 47 #Keys 48 print("---------------------------Keys-----------------------------") 49 print(info.keys()) #输出dict_keys(['AAA', 'BBB', 'CCC']) 以列表返回一个字典所有的键 50 51 #setdefault 52 print("---------------------------setdefault-----------------------------") 53 info.setdefault("DDD","88888") #和get()类似, 但如果键不已经存在于字典中,将会添加键并将值设为default 54 print(info.setdefault("AAA","99999")) #输出77777 55 print(info) #输出{'AAA': '77777', 'BBB': '22222', 'CCC': '33333', 'DDD': '88888'} 56 57 #update 58 print("---------------------------update-----------------------------") 59 info2 = {'a':1,'b':2,'c':3} 60 info.update(info2) #把括号里的字典info2的键/值对更新到info里 61 print(info) #输出{'AAA': '77777', 'BBB': '22222', 'CCC': '33333', 'DDD': '88888', 'a': 1, 'b': 2, 'c': 3} 62 63 #items 64 print("---------------------------items-----------------------------") 65 print(info.items()) #以列表返回可遍历的(键, 值) 元组数组 66 #输出dict_items([('AAA', '77777'), ('BBB', '22222'), ('CCC', '33333'), ('DDD', '88888'), ('a', 1), ('b', 2), ('c', 3)]) 67 68 print(info2.fromkeys(['d','e','f'],'test')) #创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值 69 # 通过一个列表生成默认dict,有个没办法解释的坑,少用吧这个 70 #输出{'d': 'test', 'e': 'test', 'f': 'test'}
多级字典嵌套及操作
1 av_catalog = { 2 3 "欧美":{ 4 "www.youporn.com": ["很多免费的,世界最大的","质量一般"], 5 "www.pornhub.com": ["很多免费的,也很大","质量比yourporn高点"], 6 "letmedothistoyou.com": ["多是自拍,高质量图片很多","资源不多,更新慢"], 7 "x-art.com":["质量很高,真的很高","全部收费,屌比请绕过"] 8 }, 9 "日韩":{ 10 "tokyo-hot":["质量怎样不清楚,个人已经不喜欢日韩范了","听说是收费的"] 11 }, 12 "大陆":{ 13 "1024":["全部免费,真好,好人一生平安","服务器在国外,慢"] 14 } 15 } 16 17 av_catalog["大陆"]["1024"][1] += ",可以用爬虫爬下来" #在该字符串后添加 18 print(av_catalog["大陆"]["1024"]) 19 20 #values 21 print()