字典的增删改查

字典是另一种可变容器模型,且可存储任意类型对象。

字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示

d = {key1 : value1, key2 : value2 }

1、字典中取值(方法:[]、get)

s  = {
"id": 315,
"name": "矿泉水",
"sex": "女",
"age": 27,
"addr": "上海",
"grade": "摩羯座",
"phone": "18317155664",
"gold": 100
}

print(s["id"]) 注意:[]方法,在[]中输入不存在的key,直接报错
print(s.get("name"))  注意:get方法,输入不存在的key,返回None

2、字典中增加值(方法:[]、setdefault

s["男"]="200"     []      注:增加已有的key,直接变更制定key的values值

s.setdefault("kai","12") setdefault 注:增加已有的key,key中values值不变

3、修改key中的values([])

[]中输入key = values  s["男"]="200" 

4、删除字典中的key(方法:pop、del)

 s.pop("phone")  print(s)  结果:{'id': 315, 'name': '矿泉水', 'sex': '女', 'age': 27, 'addr': '上海', 'grade': '摩羯座', 'gold': 100, '男': 300, 'kai': '12'}  #pop删除指定的key,删除返回的值。 删除不存在的key会报错

del s["name"]  print(s) 结果:{'id': 315, 'sex': '女', 'age': 27, 'addr': '上海', 'grade': '摩羯座', 'gold': 100, '男': 300, 'kai': '12'}        #del删除指定的key,没有返回值,直接删除。删除不存在的key会报错

5、查询字典中key,查询字典中values

s.keys()      查询字典中key

s.values()      查询字典中values

6、循环字典,取出key、values

s  = {
"id": 315,
"name": "矿泉水",
"sex": "女",
"age": 27,
"addr": "上海",
"grade": "摩羯座",
"phone": "18317155664",
"gold": 100
}

for i in s:
print(i)        #取出字典中的key

for i in s:
print(i,s[i])     #取出字典中的key,values
for i in s:
values=s.get(i)
print(i,values)    #取出字典中的key,values 效率最高

for key,value in s.items():
print(key,value)    #取出字典中的key,values items把字典中的元素转化成一个二维数组再取出key、value效率低不推荐使用

7、判断key是否存在字典中(使用'in')

if "id" in s:
print("你好")    建议使用此方法,少了提取key的步骤
if "id" in s.keys(): print("你好") 不建议使用此方法,keys()方法是把所有的key转换为一个list再循环后提取对应的key

8、新增key,(update方法) 

含义 :Python 字典 update() 方法用于更新字典中的键值对 。可以修改存在的键值对应的值,也可以添加新的键值对到字典中

语法:d.update(e)    e:可能是字典,也可能是键值对序列。

s.update(a=1,b=2)
print(s)

9、清空字典里面的数据(clear方法)

s.clear()

10、字典中有多层嵌套字典怎么操作??( 怎么添加数据、删除数据、修改数据)

info = {
'lgy':{
'age':18,
'addr':'beijing',
'cars':['bmw','ben-z','audi'],
},
'fd':{
'house':{
'bj':['海淀区','昌平区','朝阳区','西城区'],
'sh':['静安区','闸北区']
},
'money':5000
}
}

# lgy 又买了bc一辆车
# fd卖了一辆北京海淀的房子,钱增加了40000

info['lgy']["cars"].append("bc") # 给lgy 增加一辆 bc的车
info["fd"]["house"]["bj"].remove("海淀区") # 给fd删除海淀区的房子
info["fd"]["money"] += 40000 # 给fd账户添加40000的金额

info["fd"]["house"].pop("sh") #fd 删除上海(sh)的房子


print(info)

{'lgy': {'age': 18, 'addr': 'beijing', 'cars': ['bmw', 'ben-z', 'audi', 'bc']}, 'fd': {'house': {'bj': ['昌平区', '朝阳区', '西城区'], 'sh': ['静安区', '闸北区']}, 'money': 45000}}

{'lgy': {'age': 18, 'addr': 'beijing', 'cars': ['bmw', 'ben-z', 'audi', 'bc']}, 'fd': {'house': {'bj': ['昌平区', '朝阳区', '西城区']}, 'money': 45000}}   #fd 删除上海(sh)的房子

 



 



posted @ 2019-09-20 00:14  遇见最好的你_juan  阅读(357)  评论(0编辑  收藏  举报