字典dict的增删改查

     dict字典     ,     dict增删改查  , 添加内容可以直接使用key来进行添加 2. setdefault()           ,      

删: pop()删除最后一个     ,      del(切片删除)     ,      clear(清空列表)        ,        popitems() 随机删除    ,    remove(指定元素删除)  

改: 用key改, 也可以进行update  (把下面的更新到上面)              查: 用key查找.

items() 返回所有键值的元组表示形式.(解构)

1. dict字典
{}表示. 每次保存两个数据 key:value, 键值对
{"大阳哥":"赵阳", "sylar":"邱彦涛","强强":"张强强"}
value: 任意的数据类型
key: 必须是可哈希的(不可变)


1. 增: 1.添加内容可以直接使用key来进行添加 2. setdefault()

dic = {}
dic["jay"] = "王力宏" # {'jay': '王力宏'}
# # 如果key存在.执行的是修改操作. 如果key不存在. 执行的是新增
print(dic)
结果:{'jay': '王力宏'}

setdefault
dic = {}
dic.setdefault("李嘉诚")
dic.setdefault("李嘉诚", "房地产")
print(dic)
结果:{'李嘉诚': None}

 

 

 


2. 删: pop()删除最后一个或删除指定位置      ,      del(切片删除)     ,      clear(清空列表)        ,        popitems() 随机删除          

remove(指定元素删除)
dic = {'朱高炽':None, "朱元璋":"和尚", "诸葛亮":'不是个和尚'}
ret = dic.pop("朱元璋")
print (dic)
结果:{'朱高炽': None, '诸葛亮': '不是个和尚'}

dic = {'朱高炽':None, "朱元璋":"和尚", "诸葛亮":'不是个和尚'}
dic.clear()
print (dic)
结果:{}


dic = {'朱高炽':None, "朱元璋":"和尚", "诸葛亮":'不是个和尚'}
ret = dic.popitem() # 随机删.
print(ret)




#将oldboy对应的字典中的alex对应的列表中的python2删除。
dic = {
'name':['alex',2,3,5],
'job':'teacher',
'oldboy':{'alex':['python1','python2',100]}
}

dic["oldboy"]['alex'].remove('python2')
print(dic)






 


3. 改: 用key改, 也可以进行update  (把下面的更新到上面)  

dic = {}
dic["jay"] = "王力宏" # {'jay': '王力宏'}
# # 如果key存在.执行的是修改操作. 如果key不存在. 执行的是新增
print(dic)
结果:{'jay': '王力宏'}

 

 

update: 把dic2更新到dic1, dic1中如果存在了dic2中的key.会修改(覆盖), 如果不存在. 新增这个key:value
dic1.update(dic2)

   dic1 = {"name":'朱高炽','age':58, '朱祁镇':18}

dic2 = {"name":'朱由检','年轻':18, '朱棣':55, '张无忌':'赵敏'}
# # update: 把dic2更新到dic1, dic1中如果存在了dic2中的key.会修改(覆盖), 如果不存在. 新增这个key:value
dic1.update(dic2)
print(dic1)
结果:{'name': '朱由检', 'age': 58, '朱祁镇': 18, '年轻': 18, '朱棣': 55, '张无忌': '赵敏'}





 

 

 


4. 查: 用key查找.

dic = {'朱祁镇': 18, '朱棣': 55, '朱允炆':50}
print(dic.keys()) # dict_keys(['朱允炆', '朱祁镇', '朱棣']) 把这个当成list来看就可以了
for el in dic.keys():
print(el) # 拿到了key.就可以拿value
print(dic.get(el)) # value
结果:

dict_keys(['朱祁镇', '朱棣', '朱允炆'])
朱祁镇
18
朱棣
55
朱允炆
50

常用操作:
1. keys()返回所有的key的列表

dic = {'朱祁镇': 18, '朱棣': 55, '朱允炆':50}
print(dic.keys()) # dict_keys(['朱允炆', '朱祁镇', '朱棣']) 把这个当成list来看就可以了
结果;dict_keys(['朱祁镇', '朱棣', '朱允炆'])


2. values()返回所有的value的列表

dic = {'朱祁镇': 18, '朱棣': 55, '朱允炆':50}
print(dic.values())
结果:dict_values([18, 55, 50])


解构
dic={"成龙":"洪金宝"}
k,v = dic.popitem() # dic.popitem()的结果是一个元组. 元组可以直接解构成两个值
print(k)
print(v)
结果:成龙
洪金宝



get
dic.get('get')
如果key不存在,返回None,存在就返回value.
可以给一个默认值,当key不存在就返回默认值
可以用来判断字典中有没有我要的key




3. items() 返回所有键值的元组表示形式.(解构)

dic = {'朱祁镇': 18, '朱棣': 55, '朱允炆':50}
print(dic.items())
# # 从dic中获取到list列表. 列表中每一项都是一个元组(key,value) 通过解构可以直接把key和value获取到
for k,v in dic.items():
print(k)
print(v)
结果:dict_items([('朱祁镇', 18), ('朱棣', 55), ('朱允炆', 50)])
朱祁镇
18
朱棣
55
朱允炆
50






dic={"成龙":"洪金宝"}
k,v = dic.popitem() # dic.popitem()的结果是一个元组. 元组可以直接解构成两个值
print(k)
print(v)
结果:成龙
洪金宝

 

 

作业题:

1:页面显示 序号 + 商品名称 + 商品价格,如:
1 电脑 1999
2 鼠标 10

 

2:用户输入选择的商品序号,然后打印商品名称及商品价格
3:如果用户输入的商品序号有误,则提示输入有误,并重新输入。
4:用户输入Q或者q,退出程序。

goods = [{"name": "电脑", "price": 1999},
{"name": "鼠标", "price": 10},
{"name": "游艇", "price": 20},
{"name": "美女", "price": 998},
{"name": "娃娃", "price": 336},]
for product in goods: # 1
print(goods.index(product) + 1, product['name'], str(product['price']))

while 1: # 3
num = input("请输入你想买的东西>>>:").strip() # 2
# 判断输入的是不是q,q退出
if num.upper() == 'Q': # 4
break
# 判断输入的是否合法
if num.isdigit() and int(num) >=1 and int(num) <= len(goods): # 2
num = int(num) - 1 # 恢复回索引
print(goods[num]['name'], goods[num]['price'])
break
else:
print("警告一下. 不许胡乱输入, 请重新输入")

转载于:https://www.cnblogs.com/hdy19951010/p/9141962.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值