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()指定駐留。
只有字串,布林值,數字有小資料池
多個程式碼塊中也可使用小資料池