1.1帶回放和不帶回放的隨機采樣。
1.2λ函數的參數
1.3副本和深層副本
當復制和變量別名結合在壹起時,很容易被混淆:
別名的修改會影響原來的變量。(淺層)副本中的元素是原始列表中元素的別名,而深層副本是遞歸復制的。深層拷貝的修改不會影響原始變量。
1.4 ==並且是
1.5判斷型
1.6字符串搜索
1.7列表反向索引
這只是習慣問題。向前索引時下標從0開始,向後索引時如果想從0開始,可以用~來表示。
2.1讀寫CSV文件
註意,當CSV文件過大時,會報錯:_ csv.error:字段大於字段限制(131072),可以通過修改上限來解決。
Csv也可以用分段數據讀取。
2.2叠代器工具
Itertools重新定義了許多叠代器工具,比如子序列工具:
序列排序:
多序列合並:
2.3計數器
計數器可以計算叠代對象中每個元素的出現次數。
2.4帶默認值的字典
當訪問壹個不存在的鍵時,defaultdict將其設置為默認值。
2.5有序字典
3.1輸出錯誤和警告信息
將信息輸出到標準誤差
輸出警告信息
控制警告消息的輸出。
3.2代碼測試
有時候為了調試,我們要添加壹些代碼,通常是壹些打印語句,可以寫成:
調試結束後,通過在命令行上執行-O選項,這部分代碼將被忽略:
3.3代碼風格檢查
使用pylint,可以進行大量的代碼樣式和語法檢查,可以在運行之前發現壹些錯誤。
3.4耗時的代碼
耗時測試
測試代碼塊需要時間。
代碼耗時優化的壹些原則
4.1 argmin和argmax
Argmax也壹樣。
4.2轉置2D列表
4.3壹維列表擴展為二維列表