2013-04-02 24 views
1

例如,给定下面的数组类型的字典:最快的方法来检查是否所有的字典都等于假?

[{}, {}, {}, {}, {}, {}, {}] 

我想测试是否有任何非空类型的字典,如果是返回True,如:

[{}, {}, {}, {}, {}, {}, {}] == False 
[{}, {}, {}, {}, {}, {}, {'key': 'val'}] == True 
+0

通过_“对象数组”_你暗示可能有对象不是你的列表中的字典。是否应该阅读_“词典列表”_? – Ben

+0

@Ben:correct:D – DanH

回答

10

使用any功能。

>>> any([{}, {}, {}, {}, {}, {}, {}]) 
False 
>>> any([{}, {}, {}, {}, {}, {}, {'key': 'val'}]) 
True 

通过一个可迭代,并检查该any函数迭代如果任何值都True -ish。这些数值都低于不包含任何值:

False 
0 # and any value equal to it, e.g. 0.0 
None 
[] 
() 
# and any other empty container 

{}是一个空的容器(字典)等的计算结果为False在布尔上下文。如果在列表中包含非空字典,结果为True,因为列表中现在有一个值在布尔上下文中计算为True

相关问题