【发布时间】:2026-02-04 21:10:01
【问题描述】:
基于string 形式的一组指令,我必须在一个对象上一个接一个地应用某些指令(fxns)。这是一个更大系统的一部分。我已经到了这一点。我需要一种迭代方法,并在指令末尾返回对象的条件。我遇到了this reference,但在那里,函数被应用于一个恒定的初始数据以获取输出列表。然而,在我的情况下,对象随着迭代而变化。因此while 声明,但我还需要一个iterate 来应用我的ith 函数。
我也尝试创建一个递归函数(它在 for 语句中,感觉完全不对),基本条件是指令长度达到 0,(每个递归调用都执行一条指令,直到不再剩下,因此它的复杂性也在降低),它看起来是一个很好的递归候选者,如果有人感兴趣,我会很感激这种方式的解决方案。
instruction_dict = {'D': lambda x : x/2 , 'M': lambda x: x%2, 'P':lambda x: x*2 , 'S': lambda x : x-2, 'A': lambda x : x+2}
instruction_set = 'PPPPPDDSAM'
def mycomputation (num):
count, intermediate = 0, num
fun_args = [instruction_dict[i] for i in instruction_set]
while count <= len(fun_args):
intermediate, count = fun_args(intermediate), count +1 #list is not callable, actually need fun_args[i](intermediate)
return intermediate
fun_args 是一个列表,一个列表是不可调用的,实际上需要类似 - fun_args[i](intermediate)
【问题讨论】:
-
@khelwood 道歉。应该是固定的。
标签: python python-3.x class scope