向Dictionary Python添加新值

时间:2018-06-19 17:36:05

标签: python dictionary

我正在尝试将新的密钥对值添加到字典中:

目前我的代码输出是:

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())

1 个答案:

答案 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的创建),这应该可以工作。