Python统计嵌套列表中非空列表数量的问题求助
解决嵌套列表中非空列表的统计问题
嘿,你的问题出在判断条件上啦!你写的x is not ''是在检查每个元素是不是空字符串,但combine里的元素都是列表——哪怕是空列表b,它也不是空字符串'',所以三个元素都满足这个条件,结果自然是3,和预期的2不符。
要统计非空列表的数量,我们需要判断每个列表本身是否为空,这里有几种简洁的写法:
方法一:利用列表的布尔特性
空列表在布尔判断里会被视为False,非空列表则是True,直接用这个特性统计:
count = sum(1 for x in combine if x)
或者更简洁的版本(因为True等价于1,False等价于0):
count = sum(bool(x) for x in combine) # 甚至可以更短,sum会自动把布尔值转成整数 count = sum(x for x in combine)
方法二:明确判断列表是否为空
如果你想写得更直观,也可以直接判断列表不等于空列表:
count = sum(1 for x in combine if x != [])
用这些方法运行你的示例,得到的count就会是2啦,完全符合预期。
内容的提问来源于stack exchange,提问作者adi5257
相关产品推荐
相关产品推荐

