【发布时间】:2020-11-18 18:26:55
【问题描述】:
我试图为每个变量分配具有适当长度的单词的设置值。如果我打印出来,单个步骤看起来不错,但是当我尝试查看里面的内容时,我得到了最后一组。
to_add = set()
for x in self.domains:
to_add.clear() # clear set for next search
for word in self.domains[x]:
if len(word) == (x.length):
to_add.add(word)
self.domains[x] = to_add
for variable in self.crossword.variables:
if variable == x:
self.crossword.values = self.domains[x]
variable = to_add
print ("")
print ("***************")
print (x)
print (self.crossword.values)
print (variable)
print ("***************")
print("-----------------")
print (self.domains)
print("-----------------")
作为我得到的错误的一个例子(我得到六个变量中的每一个都具有相同的值,即使它们不相同):
(4, 4) across : 5 {'DEPTH', 'INFER', 'GRAPH', 'ALPHA', 'FALSE', 'LOGIC', 'PRUNE', 'BAYES', 'TRUTH', 'START'} {'DEPTH', 'INFER', 'GRAPH', 'ALPHA', 'FALSE', 'LOGIC', 'PRUNE', 'BAYES', 'TRUTH', 'START'}
(6, 5) across : 6 {'SEARCH', 'NEURAL', 'REASON', 'MARKOV', 'CREATE'} {'SEARCH', 'NEURAL', 'REASON', 'MARKOV', 'CREATE'}
{Variable(2, 1, 'down', 5): {'SEARCH', 'NEURAL', 'REASON', 'MARKOV', 'CREATE'}, Variable(1, 7, 'down', 7): {'SEARCH', 'NEURAL', 'REASON', 'MARKOV', 'CREATE'}, Variable(1, 12, 'down', 7): {'SEARCH', 'NEURAL', 'REASON', 'MARKOV', 'CREATE'}, Variable(2, 1, 'across', 12): {'SEARCH', 'NEURAL', 'REASON', 'MARKOV', 'CREATE'}, Variable(4, 4, 'across', 5): {'SEARCH', 'NEURAL', 'REASON', 'MARKOV', 'CREATE'}, Variable(6, 5, 'across', 6): {'SEARCH', 'NEURAL', 'REASON', 'MARKOV', 'CREATE'}}
谁能告诉我如何解决这个问题?
谢谢
【问题讨论】:
标签: python-3.x artificial-intelligence cs50