我有一個任務,我被要求修改一些代碼。原有的功能是這樣的:在功能中使用lambdas函數
def selectivelyCopy(inputFile,outputFile,predicate):
linesCopied = 0
for line in inputFile:
if predicate(line):#test the line with the predicate
outputFile.write(line)
linesCopied+=1
inputFile.close()
return linesCopied
現在我想添加參數變換,即根據用戶指定的轉變發生在作爲其參數字符串,並返回一個字符串的函數。如果變換從函數調用中省略,則輸入文件中的行將被寫入爲未更改。
這是我到目前爲止有:
def selectivelyCopy2(inputFile,outputFile,predicate, transform):
def transform(x = lambda x: x):
return(x)
linesCopied = 0
for line in inputFile:
if predicate(line): #test the line with the predicate
outputFile.write(line)
linesCopied+=1
inputFile.close()
return linesCopied
我不知道從哪裏這裏着手。我想我想讀取輸入文件行,但寫出轉換後的行......或其他東西?
嘗試運行代碼。你的CPU時間比我們的價值低。如果這是家庭作業,也標記爲家庭作業。 – Shep 2012-04-16 06:25:13
我確實運行過它。它就好像定義不在那裏一樣。沒有錯誤。 – 2012-04-16 06:38:44
對不起,明顯的,但是......你運行上面的代碼?沒有額外的東西?你有沒有呼喚你的功能? – Veky 2016-08-07 16:39:10