我对下面的代码蟒蛇基本语法布尔比较
smaller={}
for(dest in a[neigbour].keys())
if(dest in smaller.keys() == False):
print 'false'
}
我不能让这段代码打印false
..我做错了什么问题?我不知道我是否正在做正确的事情来检查语句dest in smaller.keys() == False
我对下面的代码蟒蛇基本语法布尔比较
smaller={}
for(dest in a[neigbour].keys())
if(dest in smaller.keys() == False):
print 'false'
}
我不能让这段代码打印false
..我做错了什么问题?我不知道我是否正在做正确的事情来检查语句dest in smaller.keys() == False
反对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
你的Python语法是相当混乱。首先,你的for
声明后需要:
,并且在Python中的for
循环周围使用大括号通常不是惯用的。此外,而不是比较False
与==
,通常我们使用not
:
smaller = {}
for dest in a[neighbour].keys():
if dest not in smaller.keys():
print('false')
,以及你一直在考虑其他的答案,代码可以写成:
for key in a[neighbour].viewkeys() - smaller.viewkeys():
print key, 'not found'
这需要类似.viewkeys
这样的行为的好处在a[neighbour]
而不是在b
中轻松地创建一组所有密钥,然后循环。
你不应该在条件语句中用'False'或'True'进行比较。 –
如果您正在测试字典中的成员身份,则不需要在d.keys()中使用'x,您可以简单地使用'd in d'。同样,'对于d:'中的x循环遍历键。 – DSM