x if y else z是您要为每个元素返回的表达式的语法。因此,您需要:
[ x if x%2 else x*100 for x in range(1, 10) ]
混淆是由于您在第一个示例中使用 过滤器 而在第二个示例中没有使用 过滤器 。在第二个示例中,您仅使用三元运算符表达式 将 每个值 映射
到另一个。
使用过滤器,您需要:
[ EXP for x in seq if COND ]
没有过滤器,您需要:
[ EXP for x in seq ]
在第二个示例中,该表达式是一个“复杂”表达式,其中恰好包含一个
if-else。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)