Python 表行的Lambda表达式&;柱
我试图为我的矩阵元素创建约束,在简单地更改之前,这些约束应该使用lambda函数进行自我验证 这是我目前拥有的一个示例(此函数应提供一个基于另一个[x,y]的坐标[x,y]:Python 表行的Lambda表达式&;柱,python,matrix,lambda,Python,Matrix,Lambda,我试图为我的矩阵元素创建约束,在简单地更改之前,这些约束应该使用lambda函数进行自我验证 这是我目前拥有的一个示例(此函数应提供一个基于另一个[x,y]的坐标[x,y]: Constraints.append(lambda row,col: [row-1,col+1] ) 但是,执行此操作会产生以下消息: TypeError: unsupported operand type(s) for -: 'str' and 'int' 我也尝试了铸造,但后来我得到了以下例外: Constrain
Constraints.append(lambda row,col: [row-1,col+1] )
但是,执行此操作会产生以下消息:
TypeError: unsupported operand type(s) for -: 'str' and 'int'
我也尝试了铸造,但后来我得到了以下例外:
Constraints.append(lambda row,col: [(int(row)-1),(int(col)+1)] )
ValueError: invalid literal for int() with base 10: 'N'
有人知道如何重写lambda函数,使其接受算术运算以生成新的[x,y]坐标吗?按照mkrieger1的建议跟踪。问题似乎不在于lambda函数,而在于实现它:
File "C:/Users/Algorithm.py", line 78, in CheckConsistency
var = _constraint(int(Assignment[0]),int(Assignment[1]))
ValueError:基数为10的int()的文本无效:“N”
var = _constraint(Assignment[0],Assignment[1])
似乎我的赋值[0]和赋值[1]的参数并不像我预期的那样是整数。从表面上看,错误消息表明
row
或col
(或两者)都是字符串。这可能是您想要的,也可能不是您想要的。如果是,请使用int()
或float()
转换它们。如果不是,则需要一个更完整的示例。我尝试了一下。将结果添加到问题行
或列
是一个字符串'N'
,而不是整数。请显示完整的错误回溯并包含相关代码,以便我们可以看到lambda函数是如何使用的。