字典的操作方法
字典
字典是python中唯一的映射類型,采用鍵值對(key-value)的形式存儲數(shù)據(jù)。python對key進行哈希函數(shù)運算,根據(jù)計算的結(jié)果決定value的存儲地址,3.6版本之后字典是有序的(3.5版本之前字典是無序的),且key必須是可哈希的。可哈希表示key必須是不可變類型,如:數(shù)字、字符串、元組。
字典(dictionary)是除列表以外python之中最靈活的內(nèi)置數(shù)據(jù)結(jié)構(gòu)類型。列表是有序的對象結(jié)合,3.6版本之后字典是有序的對象集合。兩者之間的區(qū)別在于:字典當(dāng)中的元素是通過鍵來存取的,而不是通過偏移存取。
增:setdefault
1 dic = { 2 'name':'煙雨江南', 3 'age':18, 4 'sex':'man' 5 } 6 增 7 dic['hobby'] = '看書' # 有則修改,無則添加 8 print(dic) 9 dic.setdefault('hobby','玩游戲') # 有則不變,無則添加 10 print(dic) View Code刪:pop、clear、popitem、del
1 dic = { 2 'name':'煙雨江南', 3 'age':18, 4 'sex':'man' 5 } 6 ret = dic.pop('name') # 按照鍵刪除鍵值對,并返回刪除的值 7 ret = dic.pop('name1','刪除的對象不存在') # 設(shè)置兩個參數(shù),第二個參數(shù)是提示語,一般設(shè)置為None;鍵不存在也不會報錯 8 print(ret) 9 dic.clear() # 清空字典 10 dic.popitem() #3.6版本之后刪除最后一個鍵值對 11 print(dic) 12 del dic['name'] # 按照建刪除 13 print(dic) View Code改:update
1 dic = { 2 'name':'煙雨江南', 3 'age':18, 4 'sex':'man' 5 } 6 dic['name'] = 'jj' 7 print(dic) 8 dic.update(name = 'TSL',money=10000) #更新:有則覆蓋,沒有則添加 9 print(dic) 10 11 12 dic = {"name": "jin", "age": 18, "sex": "male"} 13 dic2 = {"name": "alex", "weight": 75} 14 dic2.update(dic) 15 # 將dic里面的鍵值對覆蓋添加到dic2中 View Code查:
1 dic = { 2 'name':'煙雨江南', 3 'age':18, 4 'sex':'man' 5 } 6 print(dic['age']) # 若不存在會報錯 7 8 dic.get('age') # 沒有此鍵默認返回None 9 print(dic) 10 ret = dic.get('age1','此鍵不存在') # 鍵不存在,可設(shè)置提示語 11 print(ret) View Code字典的其他操作:
1 dic = { 2 'name': '太白金星', 3 'age': 18, 4 'hobby': 'wife', 5 } 6 # 查看鍵 7 res = dic.keys() # 查看字典中所有鍵 8 print(res,type(res)) # <class 'dict_keys'> 該類型可以循環(huán)遍歷 9 for i in res: 10 print(i) 11 print(list(res)) # 也可以通過list轉(zhuǎn)化為列表 12 ------------------------------------------------------------- 13 # 查看值 14 res1 = dic.values() # 查看字典中所有值 15 print(res1,type(res1)) # <class 'dict_values'> 該類型可以循環(huán)遍歷 16 for i in res1: 17 print(i) 18 print(list(res1)) # 也可以通過list轉(zhuǎn)化為列表 19 ------------------------------------------------------------- 20 #查看鍵值對 21 res2 = dic.items() 22 print(res2,type(res2)) # 查看字典中所有鍵值對 23 for i in res2: 24 print(i) 25 print(list(res2)) # 也可通過list轉(zhuǎn)化為列表:[('name', '太白金星'), ('age', 18), ('hobby', 'wife')] View Code小練習(xí):
1 dic = { 2 'name_list': ['博哥', '菊哥', 'b哥', 'alex'], 3 'barry': { 4 'name': '太白金星', 5 'age': 18, 6 'hobby': 'wife', 7 } 8 } 9 1,給這個列表['博哥', '菊哥', 'b哥', 'alex'] 追加一個元素 '老男孩'。 10 2,將這個列表['博哥', '菊哥', 'b哥', 'alex']中的alex變成首字母大寫。 11 3,將這個鍵值對 'name': '太白金星' 的 '太白金星' 改成男神。 12 4,給barry對應(yīng)的小字典增加一個鍵值對: weight: 160 13 14 dic.get('name_list').append('老男孩') 15 dic['name_list'][3]= dic['name_list'][3].capitalize() 16 dic['barry']['name'] = '男神' 17 dic['barry'].setdefault('weight',160) 18 dic['barry'].update(weight = 160) 19 print(dic) View Code面試題:
1 ''' 2 a = 18 3 b = 32 4 通過一行代碼 將a,b的值互換。 5 6 ''' 7 a = 18 8 b = 32 9 a, b = b, a View Code?
轉(zhuǎn)載于:https://www.cnblogs.com/NumerOne/p/11452095.html
總結(jié)
- 上一篇: Linux SDIO WIFI Marv
- 下一篇: jsonPath解析测试