Python 理解有“else”吗

Python 理解有“else”吗,python,Python,我有以下代码: [mc.split('$', 1)[-1] for mc in marketCapsUnclean if 'B' in mc] 这会改变一些东西,比如: ['blabla $10M', 'blabla $10B'] [mc.split('$', 1)[-1] for mc in marketCapsUnclean if 'B' in mc else 'N/A'] 进入 相反,我希望为未通过if测试的元素获取一个值,如下所示: ['N/A', '$10B'] 我想做一些类似

我有以下代码:

[mc.split('$', 1)[-1] for mc in marketCapsUnclean if 'B' in mc]
这会改变一些东西,比如:

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

相反,我希望为未通过
if
测试的元素获取一个值,如下所示:

['N/A', '$10B']
我想做一些类似的事情:

['blabla $10M', 'blabla $10B']
[mc.split('$', 1)[-1] for mc in marketCapsUnclean if 'B' in mc else 'N/A']
但这不是合法的语法


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

在循环结构之前的
if
之后添加
else
条件和值:

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

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

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

否,因为
if
是一个过滤器。包含或不包含此项,这是一个布尔选择。您没有进行筛选。您正在为每个项生成不同的值,因此希望在值表达式中使用条件表达式<代码>[mc.split(“$”,1)[-1]如果mc中的“B”或marketCapsUnclean中的mc的“N/A”]。请参阅副本。否,因为
if
是一个过滤器。包含或不包含此项,这是一个布尔选择。您没有进行筛选。您正在为每个项生成不同的值,因此希望在值表达式中使用条件表达式<代码>[mc.split(“$”,1)[-1]如果mc中的“B”或marketCapsUnclean中的mc的“N/A”]。请看副本。