Python基礎六
阿新 • • 發佈:2018-12-26
通過 bytes 使用 是否 date ont 刪掉 高頻 存儲 一、昨日內容回顧
字典
練習題:
== 比較運算符
id()查內存地址
is 判斷兩端的元素內存地址是否相同,相同返回True,否則返回False
代碼塊
為了節省內存,提升性能。產生了兩種優化機制:
個人理解每行代碼是一個代碼塊,每個py文件是一個代碼塊。
1小數據池(駐留機制,駐駐存機制,字符串的緩存機制等)適應的數據類型:str(一定條件下的str滿足小數據池) bool int(限制:-5~256)
.decode(‘gbk‘)#解碼 表示解成unicode碼
五、深淺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改、查 沒有直接的方法完成這兩個動作,但是可以通過間接的方式實現(如刪掉一個,再添加一個) 其他操作:
面試超高頻考題:***
增 | 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[‘
|
二、數據類型的補充 *** 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 *** 三、小數據池和代碼塊
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碼
淺copy | 會在內存中開辟一個新的空間,內部元素沿用原來 |
深copy | 會在內存中開辟一個新的空間,將原列表以及列表裏面的可變數據類型重新創建一份,不可變的數據類型沿用原來的 |
集合本身是一個可變的數據類型,它要求裏面的元素是一個不可變的類型(可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基礎六