关于python:是否有一个“其他”用于理解

Is there an `else` for for comprehensions

本问题已经有最佳答案,请猛点这里访问。

我有以下代码:

1
[mc.split('$', 1)[-1] for mc in marketCapsUnclean if 'B' in mc]

它可以转换如下内容:

1
['blabla $10M', 'blabla $10B']

进入之内

1
['$10B']

我希望得到不通过if测试的元素的值,如下所示:

1
['N/A', '$10B']

我想做如下的事情:

1
[mc.split('$', 1)[-1] for mc in marketCapsUnclean if 'B' in mc else 'N/A']

但这不是合法的语法。

那么,有没有一种方法可以实现类似的理解?


在循环结构之前,在if后面加上带值的else条件:

1
[mc.split('$', 1)[-1] if 'B' in mc else 'N/A' for mc in marketCapsUnclean ]