【发布时间】:2015-01-06 20:32:50
【问题描述】:
我有一个函数,我想在它下面输出与“O”相关的值行,而不是打印这些值的位置,我该如何修改? allReactions 最初是一个空数组。我已经尝试了多种方法来解决这个问题,但不断出现错误。另外我认为我的方法效率较低。
allReactions = []
reactionFile = "/Databases/reactionsDatabase.txt"
with open(reactionFile) as sourceFile:
for line in sourceFile:
if line[0] == "!" or len(line.strip()) == 0: continue
allReactions.append(Reaction(line, sourceType="Unified Data"))
def find_allReactions(allReactions, reactant_set):
reactant_set = set(reactant_set)
relevant_reactions = []
previous_reactant_count = None
while len(reactant_set) != previous_reactant_count:
previous_reactant_count = len(reactant_set)
for reaction in allReactions:
if set(reaction.reactants).issubset(reactant_set):
relevant_reactions.append(reaction)
reactant_set = reactant_set.union(set(reaction.products))
return relevant_reactions
print find_allReactions(allReactions, ["O"])
【问题讨论】:
-
你的
Reaction类需要一个__str__方法来定义它应该如何打印。
标签: python