我有一个字典(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/