Мне было интересно, существует ли более пифонический или альтернативный способ сделать это. Я хочу сравнить результаты с кумулятивными функциями. Каждая функция изменяет выходные данные предыдущего, и я хотел бы видеть после каждой из функций эффект. Помните, что для получения фактических результатов после запуска основных функций необходима одна последняя функция для вычисления чего-то. В коде это выглядит так (только вид псевдокод):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()' имеют вместо них отступы? –
Действительно, вы правы, чтобы сделать его более ясным: в каждом цикле я редактирую переменную внутри объекта, и каждый текстовый файл имеет другой объект. Таким образом, функция calculateandPrint() использует все объекты и, таким образом, использует все «данные», хотя это может быть и не ясно из моего примера. Но дело было больше в итерациях функций. – Tim