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