Я хочу динамически добавлять значения во вложенный словарь. Я пытаюсь кэшировать счетчик сходства двух слов с их частью речи.Динамическое добавление вложенных словарей
Вкратце я хочу хранить ценности как это; 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
.
Как я могу заставить это работать?
EDIT: Согласно комментариям @ Rob comments о его ответе; Я назначил список этому MyClass.synset_cache
другим способом (обратите внимание, что он находится на уровне класса). Таким образом, эта часть кода не имела ошибок.
Кто когда-либо проголосовал? могу я узнать почему? –