python字典中没有值

use*_*419 11 python dictionary if-statement nonetype

是否可以在dict中检查无值

dict = {'a':'None','b':'12345','c':'None'}
Run Code Online (Sandbox Code Playgroud)

我的代码

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

执行上面的代码片段后打印三个好.

good
good
good
Run Code Online (Sandbox Code Playgroud)

必需:如果值为None,则不能打印dict键a和c.

dm0*_*514 27

您的无值实际上是字典中的字符串.

您可以检查"无"或使用实际的python 值.

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

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

打印"好"2次

或者如果您必须使用当前字典,只需更改您的支票即可查找 'None'

另外dict是一个内置类型的python,所以不要命名变量是个好主意 dict


Jan*_*cke 7

使用定义词典

d = {'a': None}
Run Code Online (Sandbox Code Playgroud)

而不是

d = {'a': 'None'}
Run Code Online (Sandbox Code Playgroud)

在后一种情况下,'None'只是一个字符串,而不是Python的None类型.另外,None使用身份运算符测试is:

for key, value in d.iteritems():
    if value is None:
        print "None found!" 
Run Code Online (Sandbox Code Playgroud)