Python 检查所有 None 值的字典列表

Python check list of dictionaries for all None values

我有以下字典列表,目前包含 None 个值:

[{'connections': None}, {'connections': None}, {'connections': None}]

我想遍历元素列表,检查每个字典中的每个“连接”键是否为 None,如果是,则 return 为真。我如何检查所有值是否都是 None?

你可以使用生成器表达式和all来解压lst中的所有dict值并检查它们是否都是None:

out = all(x is None for d in lst for x in d.values())

输出:

True
list =[{'connections': None}, {'connections': None}, {'connections': 
None}]
for item in list:
if(item['connections']==None):
    return True

这里的 for 循环会获取每个元素,if 语句会检查数组中每个元素的键的值,所以如果它的 None 将 return 为真。

如果您希望在满足条件时静默检查:

dict_list = [{'connections': None}, {'connections': None}, {'connections': None}]
assert all( d['connections'] is None for d in dict_list), 'At least one connection value is not None'

如果不满足条件,则会引发 AssertionError 并显示上述消息。否则这条线是通过的。

这是一个函数,您可以在其中传递词典列表以检查包含所有 None 值的词典。

def func(list):
    for dict in list:
        for key in dict:
            if dict[key] is not None:
                return False
    
    return True
print(func([{'connections': None}, {'connections': None}, {'connections': None}]))