为了不再搞混,请记住这个简单的区分逻辑:
1. 带 else 时(三元运算):放在 for 前面。
● 含义:对每个元素进行变换(如果是 A 则做 X,否则做 Y)。
● [x if x > 5 else 0 for x in range(10)]
Python 解释器会尝试将前面的部分解析为 三元表达式(即 A if B else C 结构)
2. 不带 else 时(过滤筛选):放在 for 后面。
● 含义:只保留符合条件的元素。
● [x for x in range(10) if x > 5]