我正在用Python实现一个简单的自动机函数
def RunAutomata(transition, initial, accepting, s):
state = initial
for c in s:
try:
state = transition[state][c]
except KeyError:
return False
return state in accepting
dfa = {0:{'a':1, 'b':2},
1:{'c':3,'d':2},
2:{'f':3},
3:{'e':1}}
RunAutomata(dfa, 0, {2}, 'bfecedfedf')
这段代码的直觉:它检查dfa和字符串,以确定给定dfa下是否接受该字符串。如果接受返回True,否则返回False
在这里你可以看到,在字典里,我用的是字母键,所以在遍历时,如果找不到键,就会抛出KeyError。 我使用try-except块来处理它,但是我想知道是否有更好的替代方法可以使用异常处理funda来解决这个问题
编辑:从@omri\u sadon获得了一个解决方案。非常感谢。请随时张贴一些其他不同的方式以及
您可以使用dict
get
方法方法
get()
返回给定键中的值如果关键字不在dict中,则返回默认值
相关问题 更多 >
编程相关推荐