0

我对以下代码有疑问

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

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

我无法打印此代码false..我做错了吗?我想知道我是否在做正确的事情来检查声明dest in smaller.keys() == False

4

3 回答 3

4

的对立面dest in smaller.keys()dest not in smaller.keys()。无需比较Falseor True

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

in和文档not inhttp ://docs.python.org/library/stdtypes.html#sequence-types-str-unicode-list-tuple-bytearray-buffer-xrange

于 2012-10-21T23:45:44.660 回答
4

你的 Python 语法很混乱。一方面,您需要一个:after语句,并且在 Python 中for的循环周围使用大括号通常不是惯用的。for此外,通常我们使用,而不是False与 with进行比较:==not

smaller = {}
for dest in a[neighbour].keys():
    if dest not in smaller.keys():
        print('false')
于 2012-10-21T23:46:15.220 回答
1

除了您得到的其他答案外,代码还可以写成:

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

它利用了类似的行为来轻松地在not in 中.viewkeys创建一组所有键,然后对其进行循环。a[neighbour]b

于 2012-10-22T09:20:37.200 回答