【发布时间】:2013-03-28 17:18:51
【问题描述】:
我想知道是否有更 Pythonic 或替代方法来执行此操作。我想比较累积函数的结果。每个函数都会修改前一个的输出,我想看看每个函数之后的效果是什么。请注意,为了在运行主要函数后获得实际结果,需要最后一个函数来计算一些东西。在代码中,事情看起来像这样(只是一种伪代码):
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)) 手动创建循环。像我说的那样,是否有一些更 Python 的东西(例如带有函数的列表?)可以清理代码并在添加越来越多的函数时使其更短且更易于管理?
实际代码,其中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()调用是否应该缩进? -
确实你是对的,为了更清楚:在每个循环中,我编辑一个对象内的变量,每个文本文件都有一个不同的对象。因此,calculateandPrint() 函数使用所有对象,因此使用所有
data,即使从我的示例中可能不清楚。但重点更多的是函数调用的迭代。
标签: python function loops python-3.x