0

我在 python 中应用 CSP 在将字典作为参数传递给 python 中的方法时遇到问题

officerDomain = range(0, 2**scheduleDays-1)

solver = MinConflictsSolver()
problem = Problem(solver)

officers = []
officers.append({'name':'Ryan', 'rank':'3'})
officers.append({'name':'Mond', 'rank':'1'})
officers.append({'name':'Eric', 'rank':'3'})


for officer in officers:
    print(officer)
    problem.addVariable(officer, officerDomain)

在列表中传递字典时,它会给出错误unhashable type: 'dict'

4

1 回答 1

0

让我们阅读文档

addVariable(self, variable, domain)

参数variable - 表示问题变量的对象(type=hashable object)

所以你不能使用字典(在这种情况下是官员),因为它是不可散列的。officer["name"]例如尝试。

于 2020-05-02T22:34:26.917 回答