python - 不可散列类型 : 'list'

标签 python

我有一个字典(IDMapping),我正在查找它以获得一个值,然后我用它来查找另一个字典(defaultFood)。我遇到了麻烦。

我的代码目前看起来像这样:

homePSDpath = os.curdir
foodName = re.search(r'([a-zA-Z_]+)\\food', homeFoodpath).group(1)
foodName = foodName.decode("utf-8")
myFoodKey = IDMapping.get(foodName)
print defaultFood.get(myFoodKey)

这导致: TypeError: unhashable 类型: 'list'

在使用它查找 IDMapping 之前,我曾尝试将 foodName 转换为元组,但这会导致 FALSE:

myFoodKey = tuple(myFoodKey)

我确定我在这里做了一些愚蠢的事情。谢谢大家。

最佳答案

您需要访问列表中的元素:

print defaultFood.get(myFoodKey[0])

IDMapping.get(foodName) -> [45] 所以 [45][0] -> 45

如果你有反向映射,我建议将 IDMapping 的值存储为元组、整数或字符串,具体取决于你想用它们做什么,并制作 defaultFood< 的键 相同。

关于python - 不可散列类型 : 'list' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29884047/

相关文章:

python - groupby、transform 和 NaN 的奇怪结果

python - Jupyter 笔记本输入字段出现在错误的位置

python - 通过模拟 IP 套接字、串行端口和共享库来测试应用程序的有效测试策略是什么?

python - 如何将矩阵转换为 Pandas 数据框

python - 如何在 Pyramid (线程)中使用python和windows com?

python - 如何获取一个div的所有 child 的id

Python 不替换 % 符号

python - 与底商相比的整数除法 : why this surprising result?

python - 从远程数据库获取 UTF8 字符串

python - 如何修复 TypeError : 'int' object is not iterable?