dict字典常用方法總結,數據解構(解包)


dict
    {'name':'holle'}字典存儲大量關聯型數據,可迭代的,最多只有200個鍵。查詢數據速度非常快,符合二分查找(有100個數比如找75會先找到50然后判斷,所以2^7次方7次即可找到)
字典的key是唯一不可變的。3.6以前的版本字典是無序的。之后也是無序但顯示有序
key:不可變的數據類型(可哈希) 比如:str bool tuple int 類型 
value:可以是任一數據類型;

增: #dic['hight'] = 100                    通過key強制改,有hight項就會更改,沒有就會增加 #dic.setdefault('name','hello')        有則不變,無則增加,setdefault(key) 可通過key查,沒有返回None #formkeys                             (太坑別用)dict.fromkeys('abc', 'hello'),返回一個新的字典,原字典不變。
dit1 = dict3.fromkeys('abc', 'hello')
dit2 = dict3.fromkeys(['a', 'b', 'c'], 'hello')
print(dit1)    輸出:{'a': 'hello', 'b': 'hello', 'c': 'hello'}     
print(dit2)    輸出:{'a': 'hello', 'b': 'hello', 'c': 'hello'}
坑,如果追加其中一個其余value都會改變,因為在內存中這幾個是共用一個列表,一變則全都改變。
dit4 = dict3.fromkeys('abc', [])
print(dit4)              輸出:{'a': [], 'b': [], 'c': []}
dit4['a'].append('hello')
print(dit4)             輸出:{'a': ['hello'], 'b': ['hello'], 'c': ['hello']}
刪: #dic.pop('name')           按key值刪除,返回被刪除的value。 如果找不到對應的key會報錯
                           如果不想報錯,添加返回值參數,dic.pop('name','無name時的返回值')。
#dic.clear()               清空字典,只清空字典所有內容 #del dic                  在內存中徹底刪除字典 #del dic('age')           也可以按key刪除,找不到報錯 #dic.popitem()             隨機刪除,返回一個元組 (key, value)
 改: #dic['hight'] = 100                    有hight項就會更改,沒有就會增加 #update                                   dict2.update(dict1) 將dict1的內容覆蓋更新到dict2中,dict1中的內容不變 
dict1 = {'name': 'jin', 'age': 18, 'sex': 'male'}
dict2 = {'name': 'alex', 'weight': 75}
dict2.update(dict1)
print(dict2)
輸出:{'name': 'jin', 'weight': 75, 'age': 18, 'sex': 'male'}
查: #dic['name']         直接按key值查 找不到報錯 #get()               dic.get('name')如果有這個鍵返回對應的value值,沒有這個鍵會返回None   -------用這個
                     dic.get('name','沒有此key')也可以設置返回值
#dic.setdefault(key) 有返回value 沒有返回None #for      循環查找    單循環只輸出 key的值 
dic = {'qwe': 233, 'aaa': 999}
for i in dic: #輸出key 的值
    print(i)
輸出:qwe  aaa
for k, v in dic.items(): #輸出key 和 value
    print(k, v)
輸出:
qwe 233
aaa 999
字典的特有的其他操作
     for i in dic.keys():
         print(i)      #獲取到字典中的每一個鍵  
    
     for i in dic:
         print(i)     #獲取到字典中的每一個鍵

     for i in dic.values():
         print(i)     #獲取到字典中的每一個值

     for i in dic.items():
         print(i)       #獲取到字典中的所有鍵值對
#keys()           返回列表所有的鍵值key在一個容器中(高仿列表),可以使用for循環遍歷,或者list()類型轉換變為一個列表。
dict2 = {'name': 'alex', 'weight': 75}
    print(dict2.keys())    輸出:dict_keys(['name', 'weight'])
for i in dict2.keys():
    print(i)           輸出:name weight 類型為字典中的原類型

或者:
dict2 = {'name': 'alex', 'weight': 75}
print(list(dict2.keys()))
輸出: ['name', 'weight']
#value()     返回所有的value值。
dict2 = {'name': 'alex', 'weight': 75}
for i in dict2.values():
    print(i)
輸出:alex   75
#items      返回將鍵值對放在一個個小元組中,
dict2 = {'name': 'alex', 'weight': 75}
print(dict2.items())
輸出:  dict_items([('name', 'alex'), ('weight', 75)])
print(list(dict2.items()))
輸出  [('name', 'alex'), ('weight', 75)]
或
for i in dict2.items():
輸出:('name', 'alex') ('weight', 75)#len    print(dict.len()) 返回鍵值對的對數    
解構(解包) # a,b = '12'   #將后邊解構打開按位置賦值給變量 支持  字符串 列表 元組
a, b = 1, 2
a, b = '12'
a, b = ['1', 2]
a, b = (1, '2')
print(a, b)           以上所有輸出 都是 a==1   b==2
字典的嵌套
找出字典中的18改為19
dic = {
    'name':'汪峰',
    'age':43,
    'wife':{
        'name':'國際章',
        'age':39,
        'salary':100000
    },
    'baby':[
        {'name':'熊大','age':18},
        {'name':'熊二','age':15},
    ]
}
dic['baby'][0]['age'] = 19   ----------嵌套的解法與 print(dic)
數據類型分類:
    不可變的數據類型(可哈希):str,bool,tuple,int
    可變的數據類型:dict,list,set
    容器類數據類型:list,tuple,dict,set

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM