07_字典
# 1.首先,字典是以键值对的形式进行存储数据的 # 字典的表示方式:{key:value, key2:value, ...} # dic = {"jay": "周杰伦", "金毛狮王": "谢逊"} # val = dic["jay"] # print(val) # 字典的 key 必须是可哈希的数据类型(不可变类型) # 字典的 value 可以是任何数据类型 # dic = {[]:123} # print(dic) # dic = {"詹姆斯": ["孩子1", "孩子2"]} # print(dic) # 2.字典的增删改查 # 字典的增加 # dic = dict() # dic["jay"] = "周杰伦" # dic[2] = 3 # print(dic) # # 字典的修改 # dic['jay'] = "昆凌" #此时,字典中已经有了jay,此时执行的就是修改操作了 # print(dic) # dic.setdefault("tom","哈哈") #设置默认值,如果以前已经有了tom了,setdefault就不起作用了 # dic.setdefault("tom","xixi") # print(dic) # 字典的删除 # dic.pop("jay") #根据key删除 # print(dic) # # 字典的查询 # print(dic["jay557775"]) #如果key不存在,程序会报错,当你确定你的key是没有问题的,可以用 # print(dic.get('jay555')) #如果key不存在,程序返回None,当你不确定你的key可以用 # None # a = None # print(a) # print(type(a)) # s = "" #空字符串和None不一样 # 例子 # dic = { # "赵四": "特别能歪嘴", # "刘能": "老,老四啊。。", # "大脚": "跟这个和那个搞对象", # "大脑袋": "瞎折腾", # } # name = input("请输入你想知道我们村的人的名字:") # val = dic.get(name) # if val is None: # print("俺们村没有这个人") # else: # print(val) # 字典进阶操作 -- 循环和嵌套 # dic = { # "赵四": "特别能歪嘴", # "刘能": "老,老四啊。。", # "大脚": "跟这个和那个搞对象", # "大脑袋": "瞎折腾", # } # # 1.可以用for循环,直接拿到key # for key in dic: # print(key, dic[key]) # 2.希望把所有的key全部都保存在一个列表中 # print(dic.keys()) # print(list(dic.keys())) # 3.希望把所有的value都放在一个列表中 # print(list(dic.values())) # 4.直接拿到字典中的key和value # print(dic.items()) # for key,value in dic.items(): # 可以直接拿到字典所有的key和value # # print(item) #确定item中只有两项元素 # # key,value = item # print(key, value) # a, b = (1, 2) #元组或列表都可以执行该操作,该操作被称为解构(解包) # print(a) # print(b) # 非常重要(****) # for k, v in dic.items(): # print(k,v) # 字典的嵌套 # wangfeng = { # "name": "汪峰", # "age": "18", # "wife": { # "name": "皮特张", # "hobby": "演习", # "assistant": { # "name": "乔峰", # "age": 23, # } # }, # "children": [ # {"name": "孩儿1", "age": 2}, # {"name": "孩儿2", "age": 2}, # {"name": "孩儿3", "age": 2}, # ] # } # # 汪峰妻子助手的名字 # # name = wangfeng["wife"]['assistant']["name"] # # print(name) # # 给wangfegn的第二个孩子加1岁 # wangfeng['children'][1]['age'] = wangfeng['children'][1]['age'] + 1 # print(wangfeng) # 补充,字典的循环删除 dic = { "赵四": "特别能歪嘴", "刘能": "老,老四啊。。", "大脚": "跟这个和那个搞对象", "大脑袋": "瞎折腾", } temp = [] for key in dic: if key.startswith('大'): temp.append(key) # dic.pop(key) # RuntimeError: dictionary changed size during iteration,循环时又改变了长度 for t in temp: # 循环列表,删除字典中的内容 dic.pop(t) print(dic)