我的一种方法遇到非常不寻常的问题。由于某种原因,我的for循环正在跳过一个值。这是我的代码:
def getPossVals(自己,工作分配):
possVals = self.domain
if assignment is not None:
for item in assignment:
for constraint in self.constraints:
if item[0] is constraint.var[0]:
print(possVals) # print statement for testing
# this is the problematic for loop
for val in possVals:
print(val) # print statement for testing
if not self.checkVal(item[1], val, constraint.op):
possVals.remove(val)
elif item[0] is constraint.var[1]:
for val in possVals:
if not self.checkVal(val, item[1], constraint.op):
possVals.remove(val)
return possVals
使用测试用例时,我得到以下终端输出:
[1、2、3、4、5]
1 2 3 5
我从来没有遇到过这样的问题,也找不到其他人遇到这样的问题。有些人也有类似的问题,但是if语句通常是一个问题。我的print语句在任何条件语句之前,但仍会跳过值4。我们将不胜感激。