类VoqConnIngressList:
def addEntry(self,voqID, core, nofVoqs, remoteVOQconnector, remoteModID, unitID):
key = [voqID+","+remoteModID]
if key not in self.dictOfVoqs:
self.dictOfVoqs[voqID+","+remoteModID] = [voqID, core, nofVoqs, remoteVOQconnector, remoteModID, unitID]
else:
print("Entry already present")
voqConnIngressList.addEntry(10, 30, 40, 50, 60, 1)
voqConnIngressList.addEntry(10, 30, 40, 50, 60, 1)
如果它检测到重复的话。然后我应该打印消息说它是重复的
当我键入此代码时,我得到以下错误
if key not in self.dictOfVoqs: TypeError: unhashable type: 'list'
在代码的第二行
key = [voqID+","+remoteModID]
,您正在将键作为一个列表。键不能是列表。拆下方括号key = voqID+","+remoteModID
定义
key
变量时不需要这些方括号[]
。当你添加这些时,它会变成一个列表。dict上的成员资格检查将通过字典键进行,该字典键的列表不可散列且不符合候选/潜在键的条件:只需将该行替换为:
不确定python版本之间是否有差异,但是
字典中的键需要是可哈希的,而列表是不可哈希的(但字符串可以)。 你的钥匙
key = [voqID+","+remoteModID]
是一个列表,因为[]
把它做成一根绳子相关问题 更多 >
编程相关推荐