web-dev-qa-db-ja.com

python辞書に値がありません

辞書で値を確認することはできますか?

dict = {'a':'None','b':'12345','c':'None'}

私のコード

for k,v in d.items():
  if d[k] != None:
    print "good"
  else:
    print "Bad 

上記のコードスニペットを実行した後、3つの適切なコードを出力します。

good
good
good

必須:値がNoneの場合、dictキーaおよびcに適切に印刷されないことを意味します。

11
user1636419

None値は実際にはディクショナリの文字列です。

「なし」を確認するか、実際のpython None 値を使用します。

d = {'a':None,'b':'12345','c':None}

for k,v in d.items(): 
  if d[k] is None:
    print "good" 
  else: 
    print "Bad"

「良い」を2回印刷する

または、現在の辞書を使用する必要がある場合は、チェックを変更して'None'

さらにdictはpython組み込み型なので、変数に名前を付けないことをお勧めしますdict

27
dm03514

辞書を定義する

d = {'a': None}

のではなく

d = {'a': 'None'}

後者の場合、'None'は単なる文字列であり、PythonのNoneタイプではありません。また、NoneをID演算子isでテストします。

for key, value in d.iteritems():
    if value is None:
        print "None found!" 

「if value is None」を使用する代わりに、単純に使用できます

if not value: print "None found!"

「if value」は、valueにデータがある場合はtrueになり、Noneデータがある場合はfalseになります。したがって、if条件でNoneキーワードを明示的に使用する必要はありません。

0
Kush