37,721
社区成员
发帖
与我相关
我的任务
分享
test={
"1":{
"1":4,
"2":3,
"3":5,
"4":5
},
"2":{
"1":3,
"2":4,
"3":4,
"4":3
},
"3":{
"1":5,
"2":3,
"3":5,
"4":2
}
}
if simiid in (test.get(userid)).values():
sim_i_n+=simi
s_r+=simi*test[userid][simiid]
s_r=0
for simiid,simi in simiDict.items():
print """-------------print the simi------------------------------"""
print simi
if simiid in (test.get(userid)).values():
sim_i_n+=simi
s_r+=simi*test[userid][simiid]
print '''-------------print test[userid][simiid]----------------------'''
print test[userid][simiid]
continue
#problem is in the continue problem
print """----------print S_R-----------------------"""
print s_r
for simiid in dddd.items():
int(simiid)
if simiid in (test.get(userid)).values():
怎么把数据类型也变成相同的类型?
if simiid in (test.get(userid)).values():
sim_i_n+=simi
s_r+=simi*test[userid][simiid]
从你用.get(userid)来看,userid可能不存在. test.get(userid)最好用test.get(userid, {}), 否则userid不存在时, 后面的.values()就会出异常. if simiid in (test.get(userid)).values():
sim_i_n+=simi
s_r+=simi*test[userid][simiid]
因为判断一个值(不是key)是否在一个字典里,可以用上面的方法。但是我想问,如果想判断一个值(不是key)不在字典里,然后执行elseif的操作。这样该怎么写?
另外有个疑问,代码如下:
s_r=0
for simiid,simi in simiDict.items():
print """-------------print the simi------------------------------"""
print simi
if simiid in (test.get(userid)).values():
sim_i_n+=simi
s_r+=simi*test[userid][simiid]
print '''-------------print test[userid][simiid]----------------------'''
print test[userid][simiid]
continue
#problem is in the continue problem
print """----------print S_R-----------------------"""
print s_r
打印发现s_r居然是0,然后我怀疑是不是continue方法出了问题,在if这个代码块执行之后没有真正赋值给s_r。我觉得很奇怪。