我需要制作一本字典,您可以在其中引用 [[1,2],[3,4]] --> ([1,2]:0, [2,3]:0) 我尝试了不同的方法,但是我不能使用字典中的列表。所以我尝试使用元组,但它仍然是一样的。任何帮助表示赞赏!
问问题
83 次
3 回答
4
您需要使用元组:
dict.fromkeys((tuple(i) for i in [[1,2],[3,4]]), 0)
或(对于 python2.7+)
{tuple(i): 0 for i in [[1,2], [3,4]]}
编辑:
阅读评论,OP可能想要计算列表的出现次数:
>>> collections.Counter(tuple(i) for i in [[1,2], [1,2], [3,4]])
Counter({(1, 2): 2, (3, 4): 1})
于 2012-11-15T22:21:53.840 回答
3
列表不能用作字典键,因为它们不可散列(可能是因为它们可以变异,因此不可能提出合理的散列函数)。 tuple
但是没有问题:
d = {(1,2):0, (3,4):0}
请注意,在您的示例中,您似乎暗示您正在尝试构建这样的字典:
((1,2):0, (3,4):0)
那是行不通的。您需要大括号来制作字典。
于 2012-11-15T22:22:54.803 回答
0
([1,2]:0, [2,3]:0)
不是字典。我认为您打算使用:{(1,2):0, (2,3):1}
于 2012-11-15T22:24:53.950 回答