Inc*_*ito -2 python list-comprehension python-3.x
有没有一种方法可以在使用时跳过for循环的迭代
[x if cond else pass for x in seq]
Run Code Online (Sandbox Code Playgroud)
尝试时出现语法错误。
Output >>> File "<ipython-input-122-a943adcf1b68>", line 1
test = [pass if isinstance(x, float) else x for x in test_list]
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
您正在将条件表达式与循环过滤器混淆。若要过滤列表推导中的元素,请将其放在要过滤的循环if
之后for
:
[x for x in seq if cond]
Run Code Online (Sandbox Code Playgroud)
条件表达式(expr1 if cond else expr2
)必须始终产生一个值,因为它是一个表达式。pass
不是表达式,而是语句,只能单独使用。
对于您的具体示例,要在其中选择值不是浮点的元素,则要not
在过滤器测试中使用:
[x for x in test_list if not isinstance(x, float)]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
50 次 |
最近记录: |