Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 表行的Lambda表达式&;柱_Python_Matrix_Lambda - Fatal编程技术网

Python 表行的Lambda表达式&;柱

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

我试图为我的矩阵元素创建约束,在简单地更改之前,这些约束应该使用lambda函数进行自我验证

这是我目前拥有的一个示例(此函数应提供一个基于另一个[x,y]的坐标[x,y]:

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函数是如何使用的。