2016-04-23 20 views
-1

以外のFalseが表示されるのはなぜですか?キー値が2だと思いますので、get(2)Trueを返すはずですか?ありがとう。事前にpython defaultdictメソッドの戻り値を取得

import collections 

dict = collections.defaultdict(list) 
dict[1]=[1,2,3] 
dict[2]=[4,5,6] 

print dict 

if dict.get(2) == True: 
    print True 
else: 
    print False 

おかげで、 林

+3

は([取得読みます)](https://docs.python.org/2/library/stdtypes.html)ドキュメント –

+0

@BillalBEGUERADJ、投票アップ。しかし、なぜ '' dict == Trueの場合は ':なぜFalseを返しますか? –

+0

@LinMa:これは[連鎖比較]です(https://docs.python.org/2/reference/expressions.html#not-in)。物事を「真」または「偽」と比較しない。それはほとんど決して良い考えではありません。特に '=='で。 – user2357112

答えて

-1

内蔵のあなたの変数名などの名前のpythonを使用しないでください。

My_dict.get()が返されない場合は、渡されたキーの値を返します。存在しない場合は、渡されたキーの値を返します。デフォルトの引数を渡さない場合は、デフォルトでNoneが返されます。

あなたが行うことができますMy_dict.get()の検証を確認したい場合は、次の

if My_dict.get(2): 
    print True 
else: 
    print False 

それとも:ここ

print bool(My_dict.get(2)) 

は一例です:

>>> from collections import defaultdict 
>>> 
>>> 
>>> my_dict = defaultdict() 
>>> 
>>> my_dict[1]=[1,2,3] 
>>> my_dict[2]=[4,5,6] 
>>> 
>>> my_dict 
defaultdict(None, {1: [1, 2, 3], 2: [4, 5, 6]}) 
>>> 
>>> 2 in my_dict 
True 
>>> 
>>> my_dict.get(2) 
[4, 5, 6] 
>>> 
>>> my_dict.get(7, None) 
>>> bool(my_dict.get(7, None)) 
False 
+1

ありがとうKasramvd、投票アップ。キーが存在しないかどうかを確認する戻り値は何ですか? –

+1

@LinMa編集をチェックしてください。 – Kasramvd

+1

いいえ: 'dict [2]'が 'None'、' False'、または 'False'と評価される他の値の場合はどうなりますか? '2 in dict'を使うべきです。 – ThinkChaos

関連する問題