我有一本字典:
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未定义。
答案 0 :(得分:1)
添加匹配指令的长度:
print sum(v[1] for x, v in mot.items() if x in str2)
答案 1 :(得分:1)
可能是这个吗?
location = location + sum(mot[x][1] for x in mot if x in str2)