1. 程式人生 > >Python基礎六

Python基礎六

通過 bytes 使用 是否 date ont 刪掉 高頻 存儲

一、昨日內容回顧 字典
setdefault() dic[‘key‘] = value
.pop() .popitem() .clear() del dic[‘key‘]
dic[‘key‘]=‘v‘ .update(dic) .update(name=‘alex‘)
dict = {Name: Zara, Age: 7, Class: First};

print "dict[‘Name‘]: ", dict[Name];
print "dict[‘Age‘]: ", dict[
Age]; #以上實例輸出結果: #dict[‘Name‘]: Zara #dict[‘Age‘]: 7

練習題: 技術分享圖片技術分享圖片

二、數據類型的補充 *** int str bool list循環列表時盡量不要改變列表大小,會影響各數據的索引值 tuple dict在循環一個字典時不能改變字典的大小,會報錯。 set 元組中只有一個元素並且沒有逗號“,”,則就不是元組,而就是這個元素而已 數據類型之間的轉換補充: str-->list split *** list -->str join *** bool:False 0和各種空 list<-->tuple list <--dict 字典不能轉化成列表 list(dict)將字典中鍵轉換成list tuple<--dict list>-->set *** 三、小數據池和代碼塊
== 比較運算符 id()查內存地址 is 判斷兩端的元素內存地址是否相同,相同返回True,否則返回False 代碼塊 為了節省內存,提升性能。產生了兩種優化機制: 個人理解每行代碼是一個代碼塊,每個py文件是一個代碼塊。 1小數據池(駐留機制,駐駐存機制,字符串的緩存機制等)適應的數據類型:str(一定條件下的str滿足小數據池) bool int(限制:-5~256) 技術分享圖片技術分享圖片

2代碼塊內的緩存 #如果你在同一個代碼塊中,用同一個代碼塊中的緩存機制 #如果你在不同代碼塊中,用小數據池 四、編碼轉換 ASCII: unicode: utf-8: gbk: 1那麽他們之間不能互相識別。(報錯,或亂碼) 2規定:文字通過網絡傳輸,或者硬盤存儲不能使用unicode的編碼方式。 大前提: Python3環境: 唯獨str類型在內存中的編碼方式是unicode Python3版本中的str不能用於直接的網絡傳輸和文件存儲 補充一個數據類型:bytes(與str是孿生兄弟方法一毛一樣) 由於中文或其他的非英文的bytes形式顯示的是十六進制的形式,不方便閱讀與編寫,因此bytes在需要網絡傳輸和文件存儲時就要考慮一下。 str-->bytes(gbk utf-8) 即unicode --> (gbk utf-8) .encode(‘gbk‘)#編碼 表示編成gbk碼
.decode(‘gbk‘)#解碼 表示解成unicode碼 五、深淺copy
淺copy 會在內存中開辟一個新的空間,內部元素沿用原來
深copy 會在內存中開辟一個新的空間,將原列表以及列表裏面的可變數據類型重新創建一份,不可變的數據類型沿用原來的
那麽切片得來的列表與原來的是什麽關系呢?深copy還是淺copy呢?*** 全切得到的list是對原list進行的淺copy 半切當然是得到一個新的 六、集合 set 1={‘eiya‘, ‘maya‘, 1, 2, 3}
集合本身是一個可變的數據類型,它要求裏面的元素是一個不可變的類型(可hash) 集合可以實現去重的功能 特點: 1天然去重 2數據分析 3是無序的不可以通過索引去查詢 4集合裏面的元素一定是不可變的(可hash) 集合的操作: 1創建:set = {‘w‘, ‘a‘, ‘i‘} 2增:set.add("wow") set.update()叠代的增加 3刪:set.remove(‘wow‘) 刪除一個指定的元素 set.pop()隨機刪除一個元素 set.clear()清空集合 del set 刪除集合 4改、查 沒有直接的方法完成這兩個動作,但是可以通過間接的方式實現(如刪掉一個,再添加一個) 其他操作:
交集 &或者.intersection()方法
並集 |或者.union()方法
差集 -或者.difference()方法
反交集 ^或者symmetric_difference()
子集和超集 set1 < set2(被包含的是兒子輩兒的“,即子集) .issuperset()方法判斷返回bool值
frozenset 不可變集合,讓集合編程不可變類型
面試超高頻考題:*** 技術分享圖片技術分享圖片

Python基礎六