python 化学模块_Python chemif包_程序模块 - PyPI - Python中文网
實施
解決這個問題的方法是使用一個while循環(huán)的遞歸下降算法。這個循環(huán)的基本結(jié)構(gòu)是:todo = [[item1, processing_data],[item2, processing_data], ... ]
done = []
while len(todo)>0:
item_to_workon = todo.pop()
for each_branch in branches:
stuff.do()
data.process()
if end_condition.met()
done.append(processing_data)
else
todo.append([stuff, processing_data])
return done
也就是說,從todo列表中彈出一個項目,處理該節(jié)點,并將結(jié)果節(jié)點放回todo列表(除非滿足結(jié)束條件,否則在這種情況下結(jié)束)。然后在todo列表為空時返回done列表。
因此,它從第一個字母開始,嘗試一個或兩個元素組合,如果成功找到匹配項,則將項(剩余字符)與處理數(shù)據(jù)的一起放回todo列表,即元素列表。如果它在單詞的其余部分用盡了可能的路徑,而你還沒有到達單詞的結(jié)尾,那就意味著你不能用給定的元素拼寫它。
我希望您會同意,這個實現(xiàn)比使用遞歸更干凈、更容易理解。它的計算強度也較低,因為不需要在每個節(jié)點(即每個函數(shù)調(diào)用)重新定義一個具有自己作用域的新變量空間,從而使用較少的資源。
總結(jié)
以上是生活随笔為你收集整理的python 化学模块_Python chemif包_程序模块 - PyPI - Python中文网的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 山东大学继续教育计算机在线作业,山东大学
- 下一篇: python 匹配字符串map lamb