a_string = 'abc'
destination = [2, 3]
edges = { (1, 'a') : [2, 3],
(2, 'a') : [2],
(3, 'b') : [4, 3],
(4, 'c') : [5] }
def make(a_string, destination, edges):
n = 0
while n + 1 < len(a_string):
letter = a_string[n]
letter2 = a_string[n + 1]
for d in destination: # (1)
if (d, letter2) in edges:
for state in edges[(d, letter2)]:
destionation.append(state)
destination.remove(d)
n += 1 # (2)
return destination
コードは戻ります[]
が、表示されると思いますので、予期せず[5]
インクリメントしてから変更することが問題だと思います。ループを完了する前に(位置1で)このコードが(位置2で)インクリメントするのはなぜですか?n
letter2
n
for