17

是否可以检查字典中的无值

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

必需:如果值为 None ,则对 dict 键 a 和 c 不打印好。

4

4 回答 4

33

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

您可以检查“无”或使用实际的 python值。

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

于 2012-09-23T16:16:11.233 回答
10

定义你的字典

d = {'a': None}

而不是

d = {'a': 'None'}

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

for key, value in d.iteritems():
    if value is None:
        print "None found!" 
于 2012-09-23T16:20:24.230 回答
1
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)
于 2021-04-13T13:29:35.107 回答
0

而不是使用“如果值是无”,您可以简单地使用

if not value: print "None found!"

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

于 2020-02-12T13:53:17.717 回答