Dictionary wird als Liste erkannt
Verfasst: Freitag 23. Januar 2026, 11:25
Sehr geehrte Damen und Herren,
ich habe das Problem, dass ein Dictionary "synonyms" in einer Methode "removeSynonym" als Liste erkannt wird und die Funktion get() somit nicht funktioniert:
Mein Code:
...
class Words():
def __init__(self):
self.words=[]
self.found=[]
self.unit=[]
self.isynonym=[]
self.synonyms={}
def deleteSynonym(self,word,keyword):
i=0
for synonym in self.getSynonyms(keyword):
if (synonym==word):
break
i+=1
del self.synonyms[keyword]
def getIsyononym(self):
return self.isynonym
def getSynonyms(self,key):
return self.synonyms.get(key,[])
Ich bekomme jetzt folgende Fehlermeldung:
Traceback (most recent call last):
File "d:\Projects\VocabularySystem\VocabularySystem.py", line 391, in checkInput
self.compare()
File "d:\Projects\VocabularySystem\VocabularySystem.py", line 362, in compare
if(self.words.compareSynonyms(self.input,self._German)):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "d:\Projects\VocabularySystem\VocabularySystem.py", line 219, in compareSynonyms
self.deleteSynonym(word,keyword)
File "d:\Projects\VocabularySystem\VocabularySystem.py", line 199, in deleteSynonym
for synonym in self.getSynonyms(keyword):
^^^^^^^^^^^^^^^^^^^^^^^^^
File "d:\Projects\VocabularySystem\VocabularySystem.py", line 209, in getSynonyms
return self.synonyms.get(key,[])
^^^^^^^^^^^^^^^^^
AttributeError: 'list' object has no attribute 'get'
Die von DeleteSynonym aufgerufene Funktion getSynonyms interpretiert fälschlicherweise synonyms als Liste und nicht als Dictionary, wie es eigentlich deklariert war.
Im nicht sichtbaren Code gibt es keine entsprechende Variable synonyms.
Ich bitte dringend um Ihre Hilfe!!!
PS:
Es hat schon mal einwandfrei funktioniert, bis ich anderweitigen Code, der aber nichts damit zu tun hat, abgeändert habe!
ich habe das Problem, dass ein Dictionary "synonyms" in einer Methode "removeSynonym" als Liste erkannt wird und die Funktion get() somit nicht funktioniert:
Mein Code:
...
class Words():
def __init__(self):
self.words=[]
self.found=[]
self.unit=[]
self.isynonym=[]
self.synonyms={}
def deleteSynonym(self,word,keyword):
i=0
for synonym in self.getSynonyms(keyword):
if (synonym==word):
break
i+=1
del self.synonyms[keyword]
def getIsyononym(self):
return self.isynonym
def getSynonyms(self,key):
return self.synonyms.get(key,[])
Ich bekomme jetzt folgende Fehlermeldung:
Traceback (most recent call last):
File "d:\Projects\VocabularySystem\VocabularySystem.py", line 391, in checkInput
self.compare()
File "d:\Projects\VocabularySystem\VocabularySystem.py", line 362, in compare
if(self.words.compareSynonyms(self.input,self._German)):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "d:\Projects\VocabularySystem\VocabularySystem.py", line 219, in compareSynonyms
self.deleteSynonym(word,keyword)
File "d:\Projects\VocabularySystem\VocabularySystem.py", line 199, in deleteSynonym
for synonym in self.getSynonyms(keyword):
^^^^^^^^^^^^^^^^^^^^^^^^^
File "d:\Projects\VocabularySystem\VocabularySystem.py", line 209, in getSynonyms
return self.synonyms.get(key,[])
^^^^^^^^^^^^^^^^^
AttributeError: 'list' object has no attribute 'get'
Die von DeleteSynonym aufgerufene Funktion getSynonyms interpretiert fälschlicherweise synonyms als Liste und nicht als Dictionary, wie es eigentlich deklariert war.
Im nicht sichtbaren Code gibt es keine entsprechende Variable synonyms.
Ich bitte dringend um Ihre Hilfe!!!
PS:
Es hat schon mal einwandfrei funktioniert, bis ich anderweitigen Code, der aber nichts damit zu tun hat, abgeändert habe!