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("警告一下. 不準胡亂輸入, 請從新輸入")