1. 程式人生 > >2018.10.26筆記

2018.10.26筆記

1.字典(dict)  {'':'',.....}

1.1字典的增刪改查:

增:dict[key] = value 如果鍵不存在,就新增這個鍵值對;如果鍵存在,就修改這個鍵的值

dic.setdefault(args1,args2) 如果鍵不存在,就填加鍵值對args1:args2,args2的預設值為None;如果鍵存在,就返回鍵對應的值

刪:dict.pop(args1,args2) 刪除鍵為args1的鍵值對,並返回刪除的值(不是鍵值對);如果不存在,則返回args2

dict.popitem() 隨機刪除一個鍵值對(一般刪除末尾對),返回以鍵值對為元素的元組

del dict[key] 刪除指定鍵的值

改:dict[key] = value 如果鍵不存在,就新增這個鍵值對;如果鍵存在,就修改這個鍵的值

dict.update(dicts) 用dicts的內容更新字典(原本存在的鍵更新值,不存在的鍵建立鍵值對)

查:dict[key] 檢視key的值,如果key不存在,則異常.

dict.get(key,args) 返回鍵的值,如果鍵不存在,則返回args,預設為None

1.2字典的其他方法

dict.keys() 將所有鍵對放在一個類列表中    

dict.values()將所有值對放在一個類列表中

dict.items() 以元組形式將鍵值對放在一個類列表中

1.3其他

字典的每個鍵值對:分割,每對之間用,分割,整個字典放在{}中 

只有不可變資料型別才能作為鍵,對值無要求

字典中的鍵必須唯一,如果出現重複,值取後面的鍵的值

字典是無序的(在python3.6後,按順序列印 )

注:字典的無序是指,不能人為重新排序。

比如說你按鍵值1,2,3,4的順序建立的字典,只能由解析器按建立順序,還是1,2,3,4的輸出。

你無法控制它按照,4,3,2,1的順序輸出,你也無法做到1,3,2,4的

2.解構

後為print結果

a,b = 1,2  1 2

a,b = ('你好','世界')  你好 世界

a,b = ['你好','大飛哥']  你好 大飛哥

a,b = {'汪峰':'北京北京','王菲':'天后'}  汪峰 王菲

for k,v in dic.items(): 遍歷字典中的鍵和值 k為鍵 v為值

id is ==

id(args) 返回args的記憶體地址

is 判斷記憶體地址是否一致

== 判斷值值是否一樣

3.python的駐存機制(小資料池)

數字

數字的小資料池的範圍[-5:257] 不包括257 在這個範圍就能進入小資料池

字串

長度<=1的字串會進入小資料池

字串中不包含特殊字元(只包含數字字母下劃線)就能進入小資料池,無字元數量限制

在做乘法時:1.乘數為1時,與不乘1規則相同

乘數不為1時,在只包含數字字母下劃線時,字元數量<=20時進入小資料池 

字串可以被sys.intern()指定駐留。

只有字串,布林值,數字有小資料池

多個程式碼塊中也可使用小資料池