python一直用的很零散和基礎,從現在開始記錄一下遇到過的小坑,加強一下記憶。
最近在寫cs224n的作業的時候,經常把輸入資料改了(一般是包含list型別的資料)導致找錯誤找了很長時間,終於被我發現了。至於為什麼會導致輸入資料的改變,這跟python引用傳值的機制應該是分不開的,然額我並沒有理解,這裡暫時記錄下對比的兩個例子。。。。
0328補充:
這裡主要涉及賦值操作,增量賦值(類似+=,*=這樣等號和乙個算術操作符組合在一起的賦值叫增量賦值)
普通賦值實際上傳遞的是引用;
a = a+x這樣的賦值方式會新分配乙個物件給到a;
而增量賦值不僅僅是形式上的改變,更重要的是,如果操作物件是可變物件,可變物件會被就地修改,不會新分配乙個物件;若操作物件是不可變物件才會新分配乙個物件!
(ref: python核心程式設計)
# 會改變原始資料的例子
a = [([1,2,3,4], [1,2,3,4])]
for i, j in a:
i += [0]
j += [0]
print(i)
print(j)
print(a)
# 不會改變原始資料的例子
a = [([1,2,3,4], [1,2,3,4])]
for i, j in a:
i = i + [0]
j = j + [0]
print(i)
print(j)
print(a)
Python在自動化運維時經常會用到的方法
得到當前工作目錄,即當前python指令碼工作的目錄路徑 os.getcwd 返回指定目錄下的所有檔案和目錄名 os.listdir 函式用來刪除乙個檔案 os.remove 刪除多個目錄 osremovedirs r c python 略危險,熟練之後再用吧 檢驗給出的路徑是否是乙個檔案 os.p...
python複製 解壓zip保留原修改時間
情景 在使用python複製檔案或者解壓zip檔案時,檔案的修改時間總是被搞成了當前的執行時間,這樣有時會讓人挺蛋疼的。import zipfile 發布函式 defdeploy 發布單號 order code sys.argv 1 解壓到當前目錄,要包含根目錄 deploy file zip os...
Python程式設計之批量修改檔案內容
本文簡介 本文主要介紹利用python批量處理資料夾中的檔案,並對其內容進行修改最後生成至另一資料夾中的實現過程。輸入示例檔案 示例 import os path c users administrator desktop input 資料夾位址 for root,dirs,files in os....