字典
字典是python中惟一的映射類型,採用鍵值對(key-value)的形式存儲數據。python對key進行哈希函數運算,根據計算的結果決定value的存儲地址,3.6版本以後字典是有序的(3.5版本以前字典是無序的),且key必須是可哈希的。可哈希表示key必須是不可變類型,如:數字、字符串、元組。html
字典(dictionary)是除列表之外python之中最靈活的內置數據結構類型。列表是有序的對象結合,3.6版本以後字典是有序的對象集合。二者之間的區別在於:字典當中的元素是經過鍵來存取的,而不是經過偏移存取。python
增:setdefault面試
dic = { 'name':'煙雨江南', 'age':18, 'sex':'man' } 增 dic['hobby'] = '看書' # 有則修改,無則添加 print(dic) dic.setdefault('hobby','玩遊戲') # 有則不變,無則添加 print(dic)
刪:pop、clear、popitem、delapi
dic = { 'name':'煙雨江南', 'age':18, 'sex':'man' } ret = dic.pop('name') # 按照鍵刪除鍵值對,並返回刪除的值 ret = dic.pop('name1','刪除的對象不存在') # 設置兩個參數,第二個參數是提示語,通常設置爲None;鍵不存在也不會報錯 print(ret) dic.clear() # 清空字典 dic.popitem() #3.6版本以後刪除最後一個鍵值對 print(dic) del dic['name'] # 按照建刪除 print(dic)
改:update數據結構
dic = { 'name':'煙雨江南', 'age':18, 'sex':'man' } dic['name'] = 'jj' print(dic) dic.update(name = 'TSL',money=10000) #更新:有則覆蓋,沒有則添加 print(dic)
dic = {"name": "jin", "age": 18, "sex": "male"}
dic2 = {"name": "alex", "weight": 75}
dic2.update(dic)
# 將dic裏面的鍵值對覆蓋添加到dic2中
查:app
dic = { 'name':'煙雨江南', 'age':18, 'sex':'man' } print(dic['age']) # 若不存在會報錯 dic.get('age') # 沒有此鍵默認返回None print(dic) ret = dic.get('age1','此鍵不存在') # 鍵不存在,可設置提示語 print(ret)
字典的其餘操做:函數
dic = {
'name': '太白金星',
'age': 18,
'hobby': 'wife',
}
# 查看鍵
res = dic.keys() # 查看字典中全部鍵
print(res,type(res)) # <class 'dict_keys'> 該類型能夠循環遍歷
for i in res:
print(i)
print(list(res)) # 也能夠經過list轉化爲列表
-------------------------------------------------------------
# 查看值
res1 = dic.values() # 查看字典中全部值
print(res1,type(res1)) # <class 'dict_values'> 該類型能夠循環遍歷
for i in res1:
print(i)
print(list(res1)) # 也能夠經過list轉化爲列表
-------------------------------------------------------------
#查看鍵值對
res2 = dic.items()
print(res2,type(res2)) # 查看字典中全部鍵值對
for i in res2:
print(i)
print(list(res2)) # 也可經過list轉化爲列表:[('name', '太白金星'), ('age', 18), ('hobby', 'wife')]
小練習:post
dic = { 'name_list': ['博哥', '菊哥', 'b哥', 'alex'], 'barry': { 'name': '太白金星', 'age': 18, 'hobby': 'wife', } } 1,給這個列表['博哥', '菊哥', 'b哥', 'alex'] 追加一個元素 '老男孩'。 2,將這個列表['博哥', '菊哥', 'b哥', 'alex']中的alex變成首字母大寫。 3,將這個鍵值對 'name': '太白金星' 的 '太白金星' 改爲男神。 4,給barry對應的小字典增長一個鍵值對: weight: 160 dic.get('name_list').append('老男孩') dic['name_list'][3]= dic['name_list'][3].capitalize() dic['barry']['name'] = '男神' dic['barry'].setdefault('weight',160) dic['barry'].update(weight = 160) print(dic)
面試題:url
''' a = 18 b = 32 經過一行代碼 將a,b的值互換。 ''' a = 18 b = 32 a, b = b, a