我正在尝试将新的密钥对值添加到字典中:
目前我的代码输出是:
dict_items([((2, 2), 2)])
我真正想要的是
{(0, 0): 0}, {(0, 1): 2}, {(0, 2): 3}, {(1, 0): 1}, {(1, 1): 1}, {(1, 2): 2}, {(2, 0): 5}, {(2, 1): 3}, {(2, 2): 2}
有人可以解释如何用新的键值对更新我的字典吗?我尝试使用更新函数调用,但出现以下错误:
TypeError: unhashable type: 'set'
我们非常感谢您的帮助!
distanceList = []
trainingset = [5, 6, 10]
testset = [5,7,8]
for i in trainingset:
for j in testset:
distance = abs(i-j)
values = dict()
values[trainingset.index(i),testset.index(j)] = distance
# values.update({{trainingset.index(i),testset.index(j)}:distace})
distanceList.append(distance)
print(distanceList)
print(values.items())
答案 0 :(得分:0)
“无法散列的类型:set”错误表明您正在尝试将set对象用作字典键,而set不能是字典键。
虽然我不认为您有意尝试创建一个集合或将其用作字典键,但这是此行正在做的事情:
values.update({{trainingset.index(i),testset.index(j)}:distace})
(内部花括号中没有冒号 会创建一个设置对象)。
如果您只想要一个元组,如示例输出所示,请尝试:
values.update({(trainingset.index(i),testset.index(j)):distace})
只要您进行了其他一些小改动(例如distace
-> distance
,在循环之外提升values
的创建),这应该可以工作。