我有一本python词典:
aDict = {
'form-1-device': ['2'],
'form-0-test_group': ['1'],
'form-1-test_scenario': ['3'],
}
我需要从dict中删除form-1-device
和{
或者代替
aDict[newk] = aDict[k]
del aDict[k]
这也能起到作用
aDict[newk] = aDict.pop(k)
我的预期产出是:
aDict = {
'device': ['2'],
'test_group': ['1'],
'test_scenario': ['3'],
}
但是它给出了一个错误TypeError: unhashable type: 'list' in python dict
到目前为止,我查看了Python dictionary : TypeError: unhashable type: 'list'和{a2}
我也看过这个Python creating dictionary key from a list of items
但对我来说什么都不管用。任何帮助都将不胜感激。在
创建一个新的key-dicts被实现为hash映射,并且需要hashable对象作为它们的键。显然传递的是单元素列表(变量
newk
前后的方括号)。在这个行吗?在
问题出在这一行
newk
是一个列表,不是字符串。去掉方括号,你的代码就可以工作了。在有一个很好的解释为什么列表不能用作字典键-https://wiki.python.org/moin/DictionaryKeys
另外,我建议您使用字典理解来创建一个新字典并将
^{pr2}$aDict
名称绑定到它。在你把新钥匙装在这里:
产生
^{pr2}$['device']
。这是一个列表(不能用作字典键,因为它不可散列)…你需要去掉外括号:相关问题 更多 >
编程相关推荐