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()。またはと比較する必要はありませFalseTrue

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

于 2012-10-21T23:45:44.660 に答える
4

Pythonの構文はかなり混乱しています。:1つは、ステートメントの後にアフターが必要であり、Pythonでループのfor周りに中括弧を使用することは一般的に慣用的ではありません。forまた、と比較する代わりにFalse==通常は次を使用します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'

の set like 動作を利用して、 not in 内.viewkeysのすべてのキーのセットを簡単に作成し、それをループします。a[neighbour]b

于 2012-10-22T09:20:37.200 に答える