2012-10-21 190 views
0

我对下面的代码蟒蛇基本语法布尔比较

smaller={} 
for(dest in a[neigbour].keys()) 

    if(dest in smaller.keys() == False): 
     print 'false' 
    } 

我不能让这段代码打印false ..我做错了什么问题?我不知道我是否正在做正确的事情来检查语句dest in smaller.keys() == False

+2

你不应该在条件语句中用'False'或'True'进行比较。 –

+0

如果您正在测试字典中的成员身份,则不需要在d.keys()中使用'x,您可以简单地使用'd in d'。同样,'对于d:'中的x循环遍历键。 – DSM

回答

4

你的Python语法是相当混乱。首先,你的for声明后需要:,并且在Python中的for循环周围使用大括号通常不是惯用的。此外,而不是比较False==,通常我们使用not

smaller = {} 
for dest in a[neighbour].keys(): 
    if dest not in smaller.keys(): 
     print('false') 
1

,以及你一直在考虑其他的答案,代码可以写成:

for key in a[neighbour].viewkeys() - smaller.viewkeys(): 
    print key, 'not found' 

这需要类似.viewkeys这样的行为的好处在a[neighbour]而不是在b中轻松地创建一组所有密钥,然后循环。