繁体   English   中英

如何使列表成为字典中的键值?

[英]How do I make a list a key value in a dictionary?

我需要制作一个字典,您可以在其中引用[[1,2],[3,4]]->([1,2]:0,[2,3]:0)我尝试了不同的方法,但是我不能在字典中使用列表。 所以我尝试使用元组,但它仍然相同。 任何帮助表示赞赏!

您需要使用元组:

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

列表不能用作字典键,因为它们不可散列(可能是因为它们可以被突变,所以不可能提供一个合理的散列函数)。 tuple不构成任何问题:

d = {(1,2):0, (3,4):0}

请注意,在您的示例中,您似乎暗示您正在尝试构建这样的字典:

((1,2):0, (3,4):0)

那行不通。 您需要大括号才能制作字典。

([1,2]:0, [2,3]:0)不是字典。 我认为您打算使用: {(1,2):0, (2,3):1}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM