我有一个dict
(RefGenomesDict
),其中的键是登录号(string
),值是基因属性的二维列表。当我通过使用
for key in RefGenomesDict.keys():
print(str(key)+ "\t" + str(RefGenomesDict[key]))
为每个键打印预期的内容。
当我尝试使用
将列表分配给新变量时InfoList = copy.deepcopy(RefGenomesDict[AccNum])
我收到错误
TypeError: unhashable type: 'list'.
如何访问二维列表中的值?
答案 0 :(得分:3)
Python字典通常不支持可变对象作为键,因为它们不可清除。可变类型包括dict
,set
和 list
。
In [386]: {[1, 2] : 123}
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-386-3ba6ff881f9f> in <module>()
----> 1 {[1, 2] : 123}
TypeError: unhashable type: 'list'
如果您尝试按键访问字典并收到此错误,那么您肯定会使用无效密钥进行索引。根据错误的外观,AccNum
是一个列表。
您应该能够在循环中迭代键并将值分配给InfoList
,如下所示:
for key in RefGenomesDict:
InfoList = copy.deepcopy(RefGenomesDict[key])
如果您尝试更改InfoList
您不希望反映原文,则可以。如果不是这种情况,您可能希望放弃deepcopy
来电。