Python 学习笔记【12】字典
语法: 字典一种key - value 的数据类型
1 info = { 2 'stu1101': "TengLan Wu", 3 'stu1102': "LongZe Luola", 4 'stu1103': "XiaoZe Maliya" 5 }
字典的特性:
dict是无序的
key必须是唯一的
查找
1 print(info["stu1102"]) 2 print(info.get("stu1102")) # 如果一个key不存在,就报错,get不会,不存在只返回None 3 print("stu1102" in info) # 标注用法
修改和创建
1 info["stu1101"] = "武藤兰" 2 info["stu1104"] = "苍井空"
删除
1 info.pop("stu1101") 2 del info['stu1103'] 3 info.popitem() # 随机删除
多级字典的嵌套 (最好不用中文)
1 av_catalog = { 2 "欧美": { 3 "www.youporn.com": ["很多免费的,世界最大的", "质量一般"], 4 "www.pornhub.com": ["很多免费的,也很大", "质量比yourporn高点"], 5 "letmedothistoyou.com": ["多是自拍,高质量图片很多", "资源不多,更新慢"], 6 "x-art.com": ["质量很高,真的很高", "全部收费,屌比请绕过"] 7 }, 8 "日韩": { 9 "tokyo-hot": ["质量怎样不清楚,个人已经不喜欢日韩范了", "听说是收费的"] 10 }, 11 "大陆": { 12 "1024": ["全部免费,真好,好人一生平安", "服务器在国外,慢"] 13 } 14 }
修改
1 av_catalog["大陆"]["1024"][0] = "可以在国内做镜像" 2 av_catalog["大陆"]["1024"][1] += "可以后爬虫爬下来"
其他查找及创建的用法
1 print(info.values()) # 打印所有的值,不包括Key 2 print(av_catalog.values()) 3 4 print(info.keys()) # 打印所有Key 5 print(av_catalog.keys()) 6 7 info.setdefault("stu1102", "龙泽萝拉") # 如果在原字典中能取到则返回,若取不到则创建新的 8 av_catalog.setdefault("台湾", {"www.baidu.com":[1, 2, 3]})
两个字典合并,交集替换,并集添加
1 info = { 2 'stu1101': 'LongZe Luola', 3 'stu1102': 'XiaoZe Maliya', 4 'stu1103': 'LongZe Luola' 5 } 6 print(info) 7 8 b = {'stu1104': 'Chang Jingkong', 'stu1105': 'Blabla', "stu1101": "alex"} 9 info.update(b) # 有责换掉,没有则创建 10 11 print(info)
字典转换为列表,每个单元数据是一个元组
1 print(info.items())
初始化一个字典 (注意:三个key指向一个内存地址。最好少用)
1 dict.fromkeys([1,2,3],'testd')
字典(Dict)的循环
1 for i in info: # 方法一,更高效 2 print(i, info[i]) 3 4 for k, v in info.items(): # 方法二,会把字典转换为列表,低效 5 print(k, v)