Python列表推导式三元运算符使用pass触发SyntaxError问题咨询
问题原因解析
- Python三元表达式
值1 if 条件 else 值2属于表达式类型,语法要求两个分支都必须是可计算出确定值的表达式,最终整个三元运算的结果会作为元素加入生成的列表。 pass是Python的空占位语句,仅用于补齐语法结构,不会返回任何值,也不属于可计算的表达式,因此不能放在三元运算符要求返回值的分支位置,所以你写的代码会触发语法错误。
正确实现方案
你不需要借助三元表达式生成冗余的None再做清理,列表推导本身自带过滤语法,直接在循环后增加判断条件即可:[i for i in range(10) if i%2 != 0]
运行后直接输出目标结果 [1, 3, 5, 7, 9]。
内容的提问来源于stack exchange,提问作者meallhour
相关产品推荐
相关产品推荐

