使用從一個文本文件獲取輸入指令並將它們寫入列表中的字典的python程序。 我的錯誤是當我試圖運行一個or_inst功能:TypeError:'str'對象不支持對象分配
def or_inst(contextStack, varName, arg1, arg2):
checkExists(contextStack, arg1)
checkExists(contextStack, arg2)
for context in contextStack:
if (lookup(contextStack, arg1) == 't' or lookup(contextStack, arg2) == 't'):
assignValue(context, varName, 't')
else:
assignValue(context, varName, 'f')
其中contextStack是字典上下文從列表中 輸入指令是:
或DAB
和contextStack是:
('c':'f','b':'f','a':'t')
assignValue is:
def assignValue(contextStack, varName, value):
print(contextStack, varName, value)
for context in contextStack:
context[varName] = value
我認爲錯誤來自於在值位置使用字符串't'(至少從我已經查過的東西)。我還有什麼其他選擇?
contextStack是包含字典「語境」的名單。 contextStack在錯誤時看起來像[{'c':'f','b':'f','a':'t'}] –
你想用'assignValue'做什麼? –
lookup檢查contextStack中的詞典以查找他認爲的詞典關鍵詞和歸屬詞。例如:在'或da b'中,lookup(contextStack,arg1)在dict中找到'a'並返回值't' –