如何遍历分数列表并筛选达标值,无达标值时输出提示?
解决方案
方法一:基于原代码优化并添加空列表判断
原代码里的pass语句可以直接省略,简化筛选逻辑后,通过判断结果列表是否为空来输出对应内容:
scores = [0.9,0.8,0.3,0.4] new = [] for sc in scores: if sc >= 0.8: new.append(sc) if new: print(new) else: print("列表中无分数达到阈值")
方法二:使用列表推导式+三元表达式(更简洁高效)
Python的列表推导式执行效率优于普通for循环,搭配三元表达式可以用更紧凑的代码实现需求:
scores = [0.9,0.8,0.3,0.4] new = [sc for sc in scores if sc >= 0.8] print(new if new else "列表中无分数达到阈值")
逻辑说明
- 两种方案的核心逻辑一致:先筛选出符合条件的分数,再通过布尔判断结果列表是否为空(空列表在布尔上下文里会被判定为
False,非空则为True)。 - 如果筛选时需要对符合条件的分数做额外计算或操作,优先选普通循环;若只是简单的阈值筛选,列表推导式的写法更简洁高效。
内容的提问来源于stack exchange,提问作者Maths12
相关产品推荐
相关产品推荐

