如何将变量放入 python defaultdict 调用

how to put variable in python defaultdict call

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

TypeError: unhashable type: 'list'

当使用 obj1[*input_list], python returns:

SyntaxError: invalid syntax

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

错误 TypeError: unhashable type: 'list' 指出列表不可哈希,但字典始终需要可哈希的键!
如果你测试 my_normal_dict[2,3] 你可以看到它实际上将这两个数字视为元组 (2,3) 因为错误是 KeyError: (2, 3),所以你需要输入一个像元组一样的可哈希迭代。

例如,my_dict[tuple(my_list)] 应该可以工作,只要元组本身的所有元素都是可哈希的!
但请注意:如果您的列表很大,这可能需要将所有元素复制到一个元组中。