dict字典 , dict增删改查 , 添加内容能够直接使用key来进行添加 2. setdefault() , python
删: pop()删除最后一个 , del(切片删除) , clear(清空列表) , popitems() 随机删除 , remove(指定元素删除) git
改: 用key改, 也能够进行update (把下面的更新到上面) 查: 用key查找.spa
items() 返回全部键值的元组表示形式.(解构)索引
1. dict字典
{}表示. 每次保存两个数据 key:value, 键值对
{"大阳哥":"赵阳", "sylar":"邱彦涛","强强":"张强强"}
value: 任意的数据类型
key: 必须是可哈希的(不可变)ip
1. 增: 1.添加内容能够直接使用key来进行添加 2. setdefault()rem
dic = {}
dic["jay"] = "王力宏" # {'jay': '王力宏'}
# # 若是key存在.执行的是修改操做. 若是key不存在. 执行的是新增
print(dic)
结果:{'jay': '王力宏'}
setdefault
dic = {}
dic.setdefault("李嘉诚")
dic.setdefault("李嘉诚", "房地产")
print(dic)
结果:{'李嘉诚': None}
2. 删: pop()删除最后一个或删除指定位置 , del(切片删除) , clear(清空列表) , popitems() 随机删除 get
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 (把下面的更新到上面) input
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}it
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查找.date
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("警告一下. 不准胡乱输入, 请从新输入")