我正在使用这类字典,它们可以是或完全是空的,比如collection_a
,或者包含一个可能是空的单级嵌套字典。它不会有更多的水平。
collection_a = {}
collection_b = {"test": {}}
print is_empty(collection_a)
print is_empty(collection_b)
def is_empty(collection):
return not all(collection.values())
或者
def is_empty(collection):
return not bool(collection.values())
有没有一种独特的方法来检查a或b是否有值?
您可以检查all(collection_b.values())
,但这对集合a不起作用,它将返回True
您也可以检查bool(collection_a.values())
,但这对collection-b不起作用,它将返回True。。。
有没有一种独特的方法包括这两种情况?
因为:
所以你可以这样检查:
如果要检查dict a或dict b,则:
使用
any
进行测试,因为空的dict是falsy:这假设dictionary值始终是dictionary。
如果您想检查字典是否有值,以及所有值(如果有)是否为“truthy”,只需结合您的两个测试:
(第一部分中的
bool
是可选的,但是没有它,如果字典是空的,您将得到一个unintuitive{}
。)当然,如果您只想检查集合中的任何值是否为“truthy”(这一点在您的问题中并不完全清楚),那么您所要做的就是
any(collection)
,正如其他答案中所述;这同时还将检查集合是否为非空。相关问题 更多 >
编程相关推荐