我想知道是否有更pythonic或替代方法來做到這一點。我想比較累計函數的結果。每個函數都會修改前面的輸出,我希望在每個函數之後看到效果。請注意,爲了在運行主函數後獲得實際結果,需要最後一個函數來計算某些內容。在代碼中,事情是這樣的(只是僞代碼的那種):Python 3 - 累積函數替代方案
for textfile in path:
data = doStuff1(textfile)
calculateandPrint()
for textfile in path:
data = doStuff1(textfile)
data = doStuff2(data)
calculateandPrint()
for textfile in path:
data = doStuff1(textfile)
data = doStuff2(data)
data = doStuff3(data)
calculateandPrint()
正如你所看到的,對於n
功能,我需要1/2(n(n+1))
手動進行循環。像我說的那樣,是否有更多pythonic(例如帶有函數的列表),它會清理代碼並在添加越來越多的函數時使代碼變得更短,更易於管理?
的實際代碼,其中documents
是一個自定義對象:
for doc in documents:
doc.list_strippedtext = prepareData(doc.text)
bow = createBOW(documents)
for doc in documents:
doc.list_strippedtext = prepareData(doc.text)
doc.list_strippedtext = preprocess(doc.list_strippedtext)
bow = createBOW(documents)
for doc in documents:
doc.list_strippedtext = prepareData(doc.text)
doc.list_strippedtext = preprocess(doc.list_strippedtext)
doc.list_strippedtext = abbreviations(doc.list_strippedtext)
bow = createBOW(documents)
而這僅僅是一小部分,更多的功能需要添加。
在每一個你做的東西與循環變量循環,並將它放入'data',但後來放棄所有,但最後的結果循環。應該用'calculateandPrint()'調用縮進嗎? – 2013-04-06 07:58:51
事實上你是對的,爲了使它更清晰:在每個循環中,我編輯一個對象內的變量,每個文本文件都有一個不同的對象。所以calculateandPrint()函數使用了所有的對象,因此使用了所有的'數據',儘管從我的例子中可能不清楚。但重點更多的是函數調用的迭代。 – Tim 2013-04-06 10:32:48