【发布时间】:2016-07-15 18:20:01
【问题描述】:
以下代码在 Python 中工作
var=range(20)
var_even = [0 if x%2==0 else x for x in var]
print var,var_even
但是,我认为条件需要放在列表的末尾。如果我制作代码
var_even = [0 if x%2==0 for x in var]
那就不行了。这是有原因的吗?
【问题讨论】:
-
如果您只想在列表理解中使用
if条件(而不是else),您需要将它放在for之后,如果您想将它与else 一起使用,您应该放置他们在for之前。 -
条件表达式必须有一个
else。请参阅docs。 -
(0 if x%2 == 0 else x)是conditional expression。它不是列表理解的一部分。