python中的自动
我一直在用python开发自动机,但在创建示意图时遇到了一些问题 如果输入数据为(EV为偶数,OD为奇数): 我正在尝试创建一个基于字典的示意图,这样偶数和奇数都有嵌套字典 虽然我很难想出点子这个怎么样:python中的自动,python,dictionary,finite-automata,Python,Dictionary,Finite Automata,我一直在用python开发自动机,但在创建示意图时遇到了一些问题 如果输入数据为(EV为偶数,OD为奇数): 我正在尝试创建一个基于字典的示意图,这样偶数和奇数都有嵌套字典 虽然我很难想出点子这个怎么样: data = 'EV|0|EV|1|OD;OD|0|OD|1|EV' # output: {even: {0:even, 1:odd}, odd: {0:odd, 1:even}} information = data.split(';') output = {} for piece in
data = 'EV|0|EV|1|OD;OD|0|OD|1|EV'
# output: {even: {0:even, 1:odd}, odd: {0:odd, 1:even}}
information = data.split(';')
output = {}
for piece in information: # Each piece is like EV|0|EV|1|OD
parts = piece.split('|')
head = parts[0] # Our dictionary key, eg. [EV]
tail = parts[1:] # Stuff that makes up the inner dict, e.g. [0, EV, 1, OD]
# Use step = 2 to get key:value pairs from tail:
inner = {tail[i]: tail[i+1] for i in range(0, len(tail)-1, 2)}
if head not in output:
output[head] = inner
else:
# What do we do here?
pass
print(output)
产生:{'EV':{'1':'OD','0':'EV'},'OD':{'1':'EV','0':'OD'}
如果您愿意,一开始您可以:
data = data.replace('EV', 'even').replace('OD', 'odd')
对于更多的数据,您能否给出一些关于最终输出的指示?您的外部字典中只能有两个元素,正如您所描述的那样。@Symmitchry它存储的数据不会比问题中显示的多!:-)非常感谢你!这为我节省了很多时间和精力,非常感谢:-)工作得很有魅力!!
data = data.replace('EV', 'even').replace('OD', 'odd')