更多的是关于python列表理解语法。我有一个列表理解,可以生成给定范围的奇数列表:
[x for x in range(1, 10) if x % 2]
这会生成一个过滤器-我有一个源列表,在这里我删除偶数(if x % 2
)。我想在这里用一些类似if-then的东西。以下代码失败:
>>> [x for x in range(1, 10) if x % 2 else x * 100]
File "<stdin>", line 1
[x for x in range(1, 10) if x % 2 else x * 100]
^
SyntaxError: invalid syntax
有一个类似if else的python表达式:
1 if 0 is 0 else 3
如何在列表理解中使用它?
x if y else z
是为每个元素返回的表达式的语法。因此,您需要:混淆源于您在第一个示例中使用了过滤器,而不是在第二个示例中。在第二个示例中,您只需要使用三元运算符表达式将每个值映射到另一个值。
使用过滤器时,您需要:
如果没有过滤器,您需要:
在第二个例子中,这个表达式是一个“复杂的”表达式,它碰巧涉及一个
if-else
。只是另一个解决方案,希望有人会喜欢:
使用:[False,True][Expression]
相关问题 更多 >
编程相关推荐