我用Python编写了以下代码:
from pprint import pprint
def addDictionary(States,Transition,Languaje,Tr):
for s in States :
D = {}
Transition[s] = D # this create {"state1":{"symbol1":}}
for l in Languaje:
for i in range(len(Tr)):
D[l] = Tr[i][0]
def addStates(States):
cant = int(raw_input("how many states?: "))
for i in range(cant):
c = "q"+str(i)
States.append(c)
def addLan(Languaje):
c = int(raw_input("how many symbols?: "))
for j in range(c):
l = raw_input("symbol: ")
Languaje.append(l)
if __name__ == "__main__":
States=[]
Languaje=[]
Transition={} #{"state":{"symbol1":"transition value","symbol2":"transition value"}}
Tr=[["q2","q1"],["","q2"]] #transition values
addStates(States)
addLan(Languaje)
addDictionary(States,Transition,Languaje,Tr)
pprint(Transition)
这是输出:
{'q0': {'a': '', 'b': ''}, 'q1': {'a': '', 'b': ''}}
我想要的是这样的:
{'q0': {'a': 'q2', 'b': 'q1'}, 'q1': {'a': '', 'b': 'q2'}}
我想把列表Tr
的值放到字典里。
这只是一个示例代码。我想实现一个确定性有限自动机,我在我的大学为一个类开发
我忘了提到要证明代码首先输入2
,然后2
,然后a
和b
,因为我只想用2x2的列表来证明我的代码。稍后我将更改为nxm列表。(对不起,我的英语“中等”水平:V)
还有一件事:问题在于函数addDictionary()
。你知道吗
这是:
生成此输出:
对于两个状态和符号
a
和b
。你知道吗相关问题 更多 >
编程相关推荐