1. dict
用大括号{} 括起来. 内部使用key:value的形式来保存数据
{'jay':'周杰伦', "jj":'林俊杰'}
注意:字典的key必须是可哈希的. 不可变的, value 没有限制
不是按照我们保存的顺序保存的, 无序的
2. 增删改查
1. 增:dict[不存在的key] = value, setdefault()
dic = {}
dic['name'] = '周润发' # 如果dict中没有出现这个key, 就会新增⼀个key-value的组合进dict
dic['age'] = 18
print(dic)
# 如果dict中没有出现过这个key-value. 可以通过setdefault设置默认值
dic.setdefault('李嘉诚') # 也可以往⾥⾯设置值.
dic.setdefault("李嘉诚", "房地产") # 如果dict中已经存在了. 那么setdefault将不会 起作⽤
print(dic)
2. 删:pop(key). del dict[key]. popitem(), clear()
dic = {"牌牌":"你去哪里了", "晓雪":"你快回来.", "雪雪": "又走了"} ret = dic.pop("晓雪") # 删除一个元素. 返回这个元素的value值 print(ret) del dic["雪雪"] print(dic) ret = dic.popitem() # 返回给你的是一个元组. print(ret)
3. 改:dict[存在的key] = 新值, d1.update(d2) 把d2的k-v更新到d1中
dic = {"id":1, 'name':'李嘉诚', 'money':10000000} # 李嘉诚赔了500 dic['money'] = dic['money'] - 500 # 用key去修改 print(dic)
dic1 = {"李晨":"范冰冰", "邓超":"孙俪", "王祖蓝":"李亚男"} dic2 = {"李晨":"张馨予", "郑凯":"baby", "王宝强":"马蓉"} dic1.update(dic2) # 把dic2中的内容更新到 dic1 , 如果存在了key. 替换. 如果不存在,添加 print(dic1) print(dic2)
4. 查:get(key, 默认值), setdefault(), dict[key]
dic = {"及时雨":"宋江", "小李广":"花荣", "黑旋风":"李逵", "易大师":"剑圣"} dic["大宝剑"] = "盖伦" # 新增 dic["及时雨"] = "天老爷" # 修改 print(dic["易大师是个脑残"]) # 查询, 如果key不存在,报错 #get() 1、可以通过key来获取value的值. 那么如果key不存在. 返回None. # 2、可以给出一个默认值. 当key不存在的时候返回默认值 print(dic.get("易大师")) # 如果key不存在. 返回None print(dic.get("余小C"))
dic = {"及时雨":"宋江", "易大师":"剑圣"} dic.setdefault("及时雨", "诺克萨斯") # 可以帮我们添加 print(dic) ret = dic.setdefault("及时雨123", "hello") print(ret) print(dic)
# 1. 首先判断原来的字典中有没有这个key . 如果没有. 执行新增 # 2. 用这个key去字典中查询, 返回查到的结果 dic = {"及时雨":"宋江", "易大师":"剑圣"} ret = dic.setdefault("西门庆") print(dic) print(ret)
3. 字典的常用方法
1. keys() 返回所有字典的key的集合(高仿列表)
2. values() 返回所有的value的集合
3. items() 返回键值对. 元组
dic = {"id": 123, "name": 'sylar', "age": 18, "ok": "科⽐"} print(dic.keys()) for i in dic.keys(): print(i) print(dic.values()) for i in dic.values(): print(i) print(dic.items()) for i in dic.items(): #返回得是("key","value")的多个元组 print(i) for key,value in dic.items(): #返回的是多组两个字符串组成的数据 print(key,value)
解构:
a, b = (1, 2)
a, b = 1, 2 print(a, b) (c, d) = 3, 4 print(c, d) e, f = [1, 2, 3] # 解构的时候注意数量必须匹配 print(e, f)
3、字典的嵌套
dic1 = { "name": "汪峰", "age": 18, "wife": { "name": '章⼦怡', "age": 28 }, "children": ['第⼀个⽑孩⼦', '第⼆个⽑孩⼦'], "desc": '峰哥不会告我吧. 没关系. 我想上头条的' } print(dic1.get("wife").get("name")) print(dic1.get("children")) print(dic1.get("children")[1])
作业:
dic1 = {
'name':['alex',2,3,5],
'job':'teacher',
'oldboy':{
'alex':['python1','python2',100]
}
}
1,将name对应的列表追加⼀个元素’wusir’。
dic1["name"].append("wusir") print(dic1)
2,将name对应的列表中的alex⾸字⺟⼤写。
dic1["name"][0]=dic1["name"][0].capitalize() print(dic1)
3,oldboy对应的字典加⼀个键值对’⽼男孩’,’linux’。
法一: dic1["oldboy"].setdefault("老男孩","linux") print(dic1)
法二: dic1["oldboy"]["老男孩"]="linux" print(dic1)
4,将oldboy对应的字典中的alex对应的列表中的python2删除。
# 法一: del dic1["oldboy"]["alex"][1] print(dic1)
# 法二: dic1["oldboy"]["alex"].pop(1) print(dic1)
# 法三: dic1["oldboy"]["alex"].remove("python2") print(dic1)
来源:https://blog.csdn.net/baidu_38432732/article/details/98967862