【发布时间】:2015-02-11 17:28:53
【问题描述】:
我正在尝试使用 csv dict 提取列的列号并将其作为 countt 的输入。但是,它给了我一个错误说TypeError: unhashable type: 'list' Python。这是我的代码中给我带来麻烦的部分。
indexes = [i for i,x in enumerate(all_fieldnames) if x == barcode]
countt = [rec[indexes] for rec in tsv_data]
如果您能告诉我如何解决它,我将不胜感激。
在此处发布之前,我在 stackoverflow 上看到了许多类似的问题,但没有一个有帮助。
【问题讨论】:
-
rec是字典吗?您正在传递一个 list 索引(indexes是一个列表)。 -
rec[indexes]你想做什么? -
如果你真的想在 Python
dict中使用类似列表的结构作为键,那么使用元组。要将列表xs转换为元组,请使用tuple(xs)。 Python 的开发者之所以要禁止list,是因为它是可变的。如果我们更改之前用作字典键的list对象,该键是否也应该更改?如果是,那就很难实施了。
标签: python csv enums hashtable