У меня есть этот код в 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
в мой словарь. Это всего лишь пример кода. Я хочу, чтобы реализовать детерминированный конечный Automata, что я разработал для класса в моем университете
Я забыл упомянуть, что для доказательства код первого ввода 2
, а затем 2
, а затем a
и b
, потому что я только хочу, чтобы доказать свой код со списком 2x2. Позже я перейду на список nxm. (Извините за мои «средние» навыки на английском языке: V)
Еще одна вещь: проблема заключается в функции addDictionary()
.
Не могли бы вы переписать свой код, чтобы иметь разумные имена переменных? Это затрудняет понимание того, что происходит, когда каждая переменная составляет всего 1 или 2 буквы. –
Вы используете Python 2? – lmiguelvargasf
Да, я использую Python 2.7 – Ravield