python字典中没有值

时间:2012-09-23 16:14:58

标签: python if-statement dictionary nonetype

是否可以在dict中检查无值

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

我的代码

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

执行上面的代码片段后打印三个商品。

good
good
good

必需:如果值为“无”,则打印不适用于dict键a和c。

4 个答案:

答案 0 :(得分:24)

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

你可以检查'无' 或使用实际的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

答案 1 :(得分:7)

使用

定义字典
d = {'a': None}

而不是

d = {'a': 'None'}

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

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

答案 2 :(得分:0)

您可以简单地使用

而不是使用“ if value is None”。

if not value: print "None found!"

如果value有一些数据,则“ if value”将为true,如果没有数据则为false。因此,您无需在if条件中显式使用None关键字。

答案 3 :(得分:0)

def none_in_dict(d):
    for _, value in d.items():
        if value is None:
            return True
    return False

用途是:

if none_in_dict(my_dict):
    logger.error(my_err_msg)