我对以下代码有疑问
smaller={}
for( dest in a[neigbour].keys())
if(dest in smaller.keys() == False):
print 'false'
}
我无法使此代码打印false
..我做错了什么?我想知道我是否正在检查语句dest in smaller.keys() == False
答案 0 :(得分:4)
dest in smaller.keys()
的反面是dest not in smaller.keys()
。无需与False
或True
进行比较:
if (dest not in smaller.keys()):
in
和not 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
中的所有键的集合,然后循环遍历该行。