Skip to main content
 首页 » 编程设计

lambda 中的 Python isub

2025年05月04日13EasonJim

为什么 left = lambda: cursor = cursor - 1 有效,而 left = lambda: cursor -= cursor 给我一个语法错误?

lambda 中的就地减法有问题吗?

编辑: 一点上下文。 我正在尝试与成员一起上课,例如:

self.instructions = { 
            "0": lambda: self.tape[self.cursor] = 0    
            "1": lambda: self.tape[self.cursor] = 1 
            "L": lambda: self.cursor -= 1 
            "R": lambda: self.cursor += 1 
            "HALT" = lambda: self.halted = True] 
        } 

我如何使它工作?

请您参考如下方法:

lambda 表达式是只返回一个值的函数的快捷方式:

func = lambda x: x - 1 

大致相同

def func(x): 
    return x - 1 

您的两个示例都不起作用,因为赋值在 Python 中不像在某些其他语言(尤其是类似于 C 的语言)中那样是表达式。也就是说,cursor = cursor - 1 不能在 lambda 中,cursor -= 1 也可以。两者都不能进入 return 语句。