在字典中检查python中的多个字符串

时间:2013-09-01 02:51:06

标签: python dictionary

我有一本字典:

    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未定义。

2 个答案:

答案 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)