具有相同键的字典中的Python列表

时间:2019-06-21 12:49:17

标签: python list dictionary typeerror

我正在使用Visual Studio Code运行python程序,其数据如下所示:

data = {
    [0, 0, 0] : 0,
    [0, 0, 1] : 0,
    [0, 1, 0] : 0,
    [0, 1, 1] : 0,
    [1, 0, 0] : 1,
    [1, 0, 1] : 1,
    [1, 1, 0] : 1,
    [1, 1, 1] : 1
}

但是当我运行它时,它给了我错误:

  

TypeError:不可散列的类型:“列表”

如何将列表存储在字典中?我感觉列表不能是键,但是我想要这样的东西,而不是每个列表的变量。

3 个答案:

答案 0 :(得分:4)

字典中的键必须是不变的。列表是可变的,因此它们不能是键。 您可以将它们更改为元组。

答案 1 :(得分:3)

您至少需要元组而不是列表,所以:

data = {
    (0, 0, 0) : 0,
...
}

请注意括号,而不是方括号。元组就像列表一样,只是不可变的,可以轻松地用作字典中的键。

答案 2 :(得分:1)

您可以改用tuples

data = {
    (0, 0, 0) : 0,
    (0, 0, 1) : 0,
    (0, 1, 0) : 0,
    (0, 1, 1) : 0,
    (1, 0, 0) : 1,
    (1, 0, 1) : 1,
    (1, 1, 0) : 1,
    (1, 1, 1) : 1
}