Python:如何检查嵌套列表是否基本为空?
是否有Python方式检查,列表(带有元素和列表的嵌套列表)本质上是空的?我这里所说的空白是指该列表可能包含元素,但这些元素也是空列表.
Is there a Pythonic way to check if a list (a nested list with elements & lists) is essentially empty? What I mean by empty here is that the list might have elements, but those are also empty lists.
检查空列表的Python方法仅适用于平面列表:
The Pythonic way to check an empty list works only on a flat list:
alist = []
if not alist:
print("Empty list!")
例如,以下所有列表应为空:
For example, all the following lists should be positive for emptiness:
alist = []
blist = [alist] # [[]]
clist = [alist, alist, alist] # [[], [], []]
dlist = [blist] # [[[]]]
我结合了 Ants Aasma 和 Stephan202 的all(map())
对isinstance()
的使用,形成以下解决方案. all([])
返回True
,并且函数依赖于此行为.我认为它既有优势,又有优势,因为它不依赖于TypeError
异常.
I have combined the use of isinstance()
by Ants Aasma and all(map())
by Stephan202, to form the following solution. all([])
returns True
and the function relies on this behaviour. I think it has the best of both and is better since it does not rely on the TypeError
exception.
def isListEmpty(inList):
if isinstance(inList, list): # Is a list
return all( map(isListEmpty, inList) )
return False # Not a list