0

我有一本字典:

    mot={"READ":["0001",2],"MOVER":["0010",4],"MOVEM":["0011",2],"ADD":["0101",1],"COMP":["0110",2],"BC":["0111",3],"PRINT":["1000",5],"STOP":["1001",8]}  

它由一条指令和其二进制代码及其占用的字节数组成。

我从文件中读取输入行并将其存储在变量 str2 中。我想检查上述字典中的任何字符串是否出现在 str2 中。

现在,我正在使用此代码检查是否发生这种情况:

    if any(x in str2 for x in mot):
        #do something

现在,我的问题是:我有一个位置变量。代替做一些我想写的东西:

    location=location+mot[x][1]  

也就是说,我想根据找到的 x 来增加位置变量。我该怎么做呢?如果我以上述方式执行此操作,它会给我一个错误,说 x 未定义。

4

2 回答 2

1

添加匹配指令的长度:

print sum(v[1] for x, v in mot.items() if x in str2)
于 2013-09-01T02:58:36.450 回答
1

可能是这个?

location = location + sum(mot[x][1] for x in mot if x in str2)
于 2013-09-01T02:58:57.720 回答