Python列表非零元素占比计算报错,求正确实现方法
问题解决:统计列表非零元素占比的错误修正
错误原因
你的代码中J[0]!=0是将整个子列表与0做比较,得到的是一个布尔值(True),而布尔值没有len()方法,因此触发TypeError。
修正后的代码
要统计子列表J[0]中非零元素的数量,可通过生成器表达式配合sum()实现:
J=[[1, 4, 0, 0, 0, 9, 0]] non_zero_count = sum(1 for num in J[0] if num != 0) Percent_Unvisited = (non_zero_count / 12) * 100 print(int(Percent_Unvisited))
也可以利用布尔值在求和时会被当作1/0的特性,简化代码:
J=[[1, 4, 0, 0, 0, 9, 0]] non_zero_count = sum(num != 0 for num in J[0]) Percent_Unvisited = (non_zero_count / 12) * 100 print(int(Percent_Unvisited))
输出结果
运行修正后的代码会输出:
25
内容的提问来源于stack exchange,提问作者bekarhunmain
相关产品推荐
相关产品推荐

