Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从列表列表创建字典,其中键是列表_Python - Fatal编程技术网

Python 从列表列表创建字典,其中键是列表

Python 从列表列表创建字典,其中键是列表,python,Python,我有一份清单: list = [[0, 0, 0, 0, 1, 10, 10], [0, 0, 0, 0, 1, 11, 10], [1, 1, 1, 1, 0, 30, 25]] 我想从此列表创建一个字典,其中键为列表,值为0: dict = {[0, 0, 0, 0, 1, 10, 10]: 0, [0, 0, 0, 0, 1, 11, 10]: 0, [1, 1, 1, 1, 0, 30, 25]: 0} 我尝试了以下方法:dict={key:0代表列表中的键} 但我有一个错误: Ty

我有一份清单:

list = [[0, 0, 0, 0, 1, 10, 10], [0, 0, 0, 0, 1, 11, 10], [1, 1, 1, 1, 0, 30, 25]]
我想从此列表创建一个字典,其中键为列表,值为0:

dict = {[0, 0, 0, 0, 1, 10, 10]: 0, [0, 0, 0, 0, 1, 11, 10]: 0, [1, 1, 1, 1, 0, 30, 25]: 0}
我尝试了以下方法:
dict={key:0代表列表中的键}

但我有一个错误:

TypeError:不可损坏的类型:“列表”


如何解决此问题?

由于列表是可变对象,因此无法创建以列表为键的词典。您可以做的一件事是从
元组而不是列表创建字典,因为它们可以被散列,您可以查看更多关于这方面的信息,如所述:

与序列不同,序列由一系列数字索引,字典由键索引,键可以是任何不可变类型


因此,构建字典的一种方法是将列表映射到
元组
,并将它们用作

l = [[0, 0, 0, 0, 1, 10, 10], [0, 0, 0, 0, 1, 11, 10], [1, 1, 1, 1, 0, 30, 25]]

dict.fromkeys(map(tuple, l), 0)

{(0, 0, 0, 0, 1, 10, 10): 0,
 (0, 0, 0, 0, 1, 11, 10): 0,
 (1, 1, 1, 1, 0, 30, 25): 0}


另外,请检查是否有更好的理解

您不能将列表用作键,因为它们是可更改的,所以它们是不可损坏的。您可以将列表转换为元组并将其用作键


tuples\u dict={tuple(key):0表示列表中的键}

列表是可变的,因此不能是字典中的键。将它们转换为元组。此外,避免使用列表作为变量

dict([(tuple(x),0) for x in lst])

您不能将列表作为键…
dict={tuple(key):0表示列表中的键}
?谢谢,但在这种情况下,键是元组而不是列表您不能创建以列表作为键的词典,因为它们是可变对象。所以,非常感谢您欢迎@HoucineAmraoui!别忘了你可以投票/接受答案,参见