如何将continue
放入具有功能的列表理解中?
以下示例代码...
import pandas as pd
l = list(pd.Series([1,3,5,0,6,8]))
def inverse(x):
if x == 0:
print('not ok')
continue
else:
print('ok')
return 1/x
[inverse(x) for x in l]
...给予:
SyntaxError:“继续”无法正确循环
预期输出为:
ok
ok
ok
not ok
ok
ok
[1.0, 0.3333333333333333, 0.2, 0.16666666666666666, 0.125]
答案 0 :(得分:4)
如果您绝对需要打印,可以按如下所示将功能映射到列表,然后过滤出None
不幸的是,您不能在理解列表中调用continue
l = [1,3,5,0,6,8]
def inverse(x):
if x == 0:
print('not ok')
return
else:
print('ok')
return 1/x
print([x for x in map(inverse, l) if x is not None])
如果您有多个条件,那么很容易更改inverse
方法