如何在python defaultdict调用中放入变量



在python defaultdict对象(如obj1(中,我可以调用obj1['hello','there']并获取项。但是当输入列表是可变的(例如:input_list(时,我如何调用obj1[input_list]?当我调用obj1[input_list]时,python会引发以下错误:

TypeError: unhashable type: 'list'

使用obj1[*input_list]时,python返回:

SyntaxError: invalid syntax

那么,将列表作为变量放入defaultdict的正确方法是什么呢?

错误TypeError: unhashable type: 'list'表示列表不可哈希,但dict总是需要一个可哈希的键
如果您测试my_normal_dict[2,3],您可以看到它实际上将这两个数字视为元组(2,3),因为错误为KeyError: (2, 3),因此您需要像元组一样输入可散列的可迭代项。

例如,只要元组本身的所有元素都是可散列的,my_dict[tuple(my_list)]就应该起作用
不过请注意:如果您的列表很大,则可能需要将所有元素复制到元组中。

最新更新