python--字典
一. 字典
字典是以key:value的形式来保存数据的,用{}表示
字典的增删改查
字典的增加
dic = {"意大利": "李云龙", "美国": "美国往事"} dic["日本"] = "东京审判" # 新key表示添加 dic['韩国'] = "釜山行" print(dic) setdefault (难点) 有添加的功能,如果key是存在的. 不添加 流程: 判断你给的key是否在字典中存在了.如果已经存在了. 就不再新增. 如果不存在. 执行新增操作 dic.setdefault("美国", "三傻大闹宝莱坞") print(dic)
字典的删除
dic = {"张艺谋":"红高粱", "李安":"断臂山", "陈凯歌":"霸王别姬", "郭德纲":"祖宗十九代"} dic.pop("郭德纲") # 你要记住的 dic.popitem() # 随机删除一项. 在python早期版本 字典是无序的. del dic["李安"] dic.clear() # 清空 print(dic)
字典的改动
dic = {"河南":"胡辣汤", "开封": "灌汤包", "武汉":"热干面"} dic['河南'] = "烩面" # 老key = 新值 print(dic) dic1 = {"赵四":"刘晓光", "刘能":"王晓利", "王木生":"范伟"} dic2 = {"赵四":"宝宝", "刘能":"萌萌", "皮校长":"皮长山"} dic1.update(dic2) # 把dic2怼到dic1里面. 把dict2中的内容更新到dic1 print(dic1) print(dic2)
字典的查询
dic1 = {"赵四":"刘晓光", "刘能":"王晓利", "王木生":"范伟"} 1. 直接使用key就可以拿到value print(dic1["赵四"]) # KeyError: '赵四四' key不存在 2. get(key) print(dic1.get("刘能能")) # None 当key不存在返回None print(dic1.get("刘能能", "没有这个人")) # 当key不存在. 返回第二个参数. 默认第二个参数是None 3. setdefault() 第一个功能是添加(当key不存在). 第二个功能是查询(根据你给的key查询) 整个执行流程: 判断给的key是否存在. 如果存在. 就不执行新增流程.直接查询出这个key对应的value 如果key不存在. 先执行新增操作. 再使用key把对应的value查询出来 ret = dic1.setdefault("皮长山", "皮校长") print(ret) # 皮校长
字典的遍历
dic = {"赵四":"刘晓光", "刘能":"王晓利", "王木生":"范伟"} 1. 使用for循环直接遍历字典的key for key in dic: print(key) print(dic[key]) 2. 可以使用字典的items()+解构可以直接获取到key和value for k, v in dic.items(): print(k) print(v)
字典的嵌套
wf = { "name":"汪峰", "age":52, "hobby":["唱歌", "上头条", "穿皮裤"], "wife": { "name": "章子怡", "age": 49, "hobby":["演戏", "上电视", "当导师"], "tishen": { "name":"萌萌", "age":28 }, "zhuli":{ "name":"磊磊", "age": 20 } }, "zhuli":{ "name":"宝宝", "age":23, "hobby":["抽烟","喝酒","烫头"] }, "children":[{"name":"汪老大"}, {"name":"汪老二"}] } wf['children'][1]["age"] = 2 print(wf) # print(wf['zhuli']['name']) 汪峰老婆替身的名字 print(wf['wife']['tishen']['name']) # 汪峰老婆的第二个爱好 print(wf['wife']['hobby'][1]) 汪峰助理的第三个爱好 print(wf['zhuli']['hobby'][2]) 汪峰的助理+10岁 wf['zhuli']['age'] = wf['zhuli']['age'] + 10 汪峰的老婆添加一个爱好("导戏") wf['wife']['hobby'].append("导戏") # 添加完毕了 删除汪峰助理的"抽烟"爱好 wf["zhuli"]["hobby"].remove("抽烟") print(wf)
二 . set 集合
# 去重 lst = ["麻将", "牌九", "骰子", "扑克", '篮球', "骰子", "扑克", '篮球', "扑克", '篮球', "扑克", '篮球'] 把列表转化成集合 x 转化成y类型 y() s = set(lst) # print(s) 把集合变回列表 lst = list(s) print(lst) # 顺序是乱的