抱歉,一个简单的问题,我想我得到的基本循环错误。我不知道为什么我没有得到预期的结果。你知道吗
Comp = {'Red':100, 'Blue':101, 'Green':102 ,'Ivory':103, 'White':104}
Comp ['Black'] = 99
def value_for_value(d, mynumber):
for key, value in d.iteritems():
print key,value,type(value),mynumber,type(mynumber)
mykey = 'AAA'
if value == mynumber:
mykey = key
return mykey
print value_for_value(Comp,99)
预期结果:黑色
实际结果:AAA
PS:为了确保我比较的是正确的数据类型,我也打印了数据类型。你知道吗
我觉得这样写比较清楚:
key_for_value
不是一个更有意义的名字吗?你知道吗如果要在不修改
d
的情况下进行大量查找,那么按照@abarnert的建议创建反向dict是个好主意问题是每次通过循环时,都会设置
mykey = 'AAA'
。因此,除非str
恰好是最后一个值,否则您将用错误的答案覆盖正确的答案。你知道吗让我们再添加一些指纹以更好地查看:
那么,你怎么解决呢?简单:只需将回退值移到循环之外,这样您只需执行一次:
现在:
值得注意的是,如果你构建一个逆dict并将其索引,整个过程会更简单:
相关问题 更多 >
编程相关推荐