遍历列表和字典的列表

2024-09-29 23:28:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我用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,然后ab,因为我只想用2x2的列表来证明我的代码。稍后我将更改为nxm列表。(对不起,我的英语“中等”水平:V)

还有一件事:问题在于函数addDictionary()。你知道吗


Tags: 代码inforinputrawdefrangetr

热门问题