我有一个 python 脚本来解析语法。初始代码是:
num_pro=int(raw_input())
right=[];left=[];
for i in range(num_pro):
map(list.append, (left, right), raw_input().split('->'))
right_edit=[];left_edit=[];i=0
for rhs in right:
parts=rhs.split('|')
for each in parts:
left_edit.append(left[i])
right_edit.append(each)
i+=1
for each in right_edit:
print left_edit[right_edit.index(each)]+" -> "+each
我正在从包含以下内容的文件中获取输入:
6
E->TZ
Z->+TZ|e
T->FY
Y->*FY|e
F->(E)|a
X->*ZX|e
输出如下:
E -> TZ
Z -> +TZ
Z -> e
T -> FY
Y -> *FY
Z -> e #unexpected
F -> (E)
F -> a
X -> *ZX
Z -> e #unexpected
而预期的输出是:
E -> TZ
Z -> +TZ
Z -> e
T -> FY
Y -> *FY
Y -> e #expected
F -> (E)
F -> a
X -> *ZX
X -> e #expected
我搜索并发现字典不允许使用相同的键,并且在集合中也不允许使用相同的值。在我的代码中,我没有使用字典或集合。我也不用list.index(value)
。仍然为什么会有这样的输出。如何获得预期的输出。