基礎【五】字典的操做方法

py_字典的操做方法

 

字典

字典是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
複製代碼
相關文章
相關標籤/搜索