python基本语法boolean compare

时间:2012-10-21 23:42:42

标签: python python-2.7

我对以下代码有疑问

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

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

我无法使此代码打印false ..我做错了什么?我想知道我是否正在检查语句dest in smaller.keys() == False

是否正确

3 个答案:

答案 0 :(得分:4)

dest in smaller.keys()的反面是dest not in smaller.keys()。无需与FalseTrue进行比较:

if (dest not in smaller.keys()):

innot in的文档:http://docs.python.org/library/stdtypes.html#sequence-types-str-unicode-list-tuple-bytearray-buffer-xrange

答案 1 :(得分:4)

您的Python语法非常混乱。例如,在:语句之后需要for,并且在Python中使用for循环周围的大括号通常不是惯用的。此外,我们通常使用False代替==not进行比较:

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

答案 2 :(得分:1)

除了你给出的其他答案之外,代码可以写成:

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

利用.viewkeys的设置行为轻松创建a[neighbour]中不在b中的所有键的集合,然后循环遍历该行。