중첩 된 사전에 값을 동적으로 추가하려고합니다. 나는 품사 태그로 두 단어의 유사성 스코어를 캐쉬하려고한다.동적으로 중첩 된 사전을 추가합니다.
요약하면이 값을 저장하고 싶습니다. 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
입니다.
어떻게하면됩니까?
편집 : 그의 답변에 대한 @ Robᵩ의 의견에 따르면; 이 MyClass.synset_cache
에 다른 방법으로 목록을 지정했습니다 (클래스 수준에 있음). 따라서이 코드 부분에는 오류가 없습니다.
누구도 투표하지 않았습니까? 왜 그럴 수 있니? –