如何判断包含numpy array元素的嵌套列表是否为空
问题原因
你原先的代码不生效是因为any()函数会对列表中的每个元素做布尔转换,numpy中值为0的单元素数组做布尔判断时会返回False,所以只要你的列表里全是0值数组,不管列表本身是不是空,any(values)都会返回False,和你要判断“列表为空”的需求完全不匹配。
正确实现方案
首先明确你说的“数组列表为空”的两种常见场景,对应不同的实现方式:
- 场景1:仅判断
values这个列表本身没有任何元素(即values = [])
直接利用Python空列表本身为假的特性判断即可,最高效:if not values: print("Empty list!") - 场景2:需要判断列表中存储的所有numpy数组本身都是空数组(即每个数组都没有元素,不管列表本身有没有元素)
遍历检查每个数组的元素数量即可:if all(arr.size == 0 for arr in values): print("All arrays in the list are empty!")
内容的提问来源于stack exchange,提问作者Khaned
相关产品推荐
相关产品推荐

