我有一些图表,我从中生成代码。一个节点的一个条件。例如,生成的代码可能如下所示:
def function():
steps = []
if True:
steps.append(1)
if True:
steps.append(2)
if False:
steps.append(3)
return 'a', steps
if False:
steps.append(4)
return 'b', steps
if True:
steps.append(5)
if True:
steps.append(6)
if False:
steps.append(7)
return 'a', steps
if True:
steps.append(8)
return 'b', steps
我用True
/ False
替换了真实条件,以使示例更清洁。
此函数返回元组('b', [1, 2, 5, 6, 8])
,因此获取了一些值和步骤。我想修改此代码以删除不成功的步骤。所以修改后的函数应该返回('b', [1, 5, 8])
。
我的问题是,最好的方法是什么?
答案 0 :(得分:3)
执行此操作的一种方法是在每个失败的小组之后pop
。
def function():
steps = []
if True:
steps.append(1)
if True:
steps.append(2)
if False:
steps.append(3)
return 'a', steps
if False:
steps.append(4)
return 'b', steps
steps.pop() #removes 2 from steps
if True:
steps.append(5)
if True:
steps.append(6)
if False:
steps.append(7)
return 'a', steps
steps.pop() #remove the 6
if True:
steps.append(8)
return 'b', steps
steps.pop() #remove the 5
steps.pop() # removes the 1