我想動態添加嵌套字典中的值。我試圖用它們的詞性標籤來緩存兩個詞的相似性分數。動態添加嵌套字典
總之,我想存儲這樣的價值; synset_cache[word1][word1_tag][word2][word2_tag] = score
class MyClass(Object):
def __init__(self):
MyClass.synset_cache={} #dict
def set_cache(self,word1, word1_tag, word2, word2_tag, score)
try:
MyClass.synset_cache[word1]
except:
MyClass.synset_cache[word1]={} #create new dict
try:
MyClass.synset_cache[word1][word1_tag]
except:
MyClass.synset_cache[word1][word1_tag]={} #create new dict
try:
MyClass.synset_cache[word1][word1_tag][word2]
except:
MyClass.synset_cache[word1][word1_tag][word2]={} #create new dict
#store the value
MyClass.synset_cache[word1][word1_tag][word2][word2_tag] = score
但我得到這個錯誤。
Type error: list indices must be integers, not unicode
它顯示的行號是MyClass.synset_cache[word1][word1_tag]={} #create new dict
。
我該如何得到這個工作?
編輯: 根據@羅布的評論他的答案;我用另一種方法爲這個MyClass.synset_cache
分配一個列表(注意它在類級別)。所以這個代碼部分沒有錯誤。
誰曾經投票過?我可以知道爲什麼嗎? – 2014-10-09 03:31:37