【发布时间】:2018-07-06 20:31:48
【问题描述】:
我有以下代码:
[mc.split('$', 1)[-1] for mc in marketCapsUnclean if 'B' in mc]
其中的转换如下:
['blabla $10M', 'blabla $10B']
进入
['$10B']
我想为未通过if 测试的元素获取一个值,如下所示:
['N/A', '$10B']
我想做这样的事情:
[mc.split('$', 1)[-1] for mc in marketCapsUnclean if 'B' in mc else 'N/A']
但这不是合法的语法。
那么有没有办法通过 for 理解来实现类似的东西?
【问题讨论】:
-
不,因为
if是一个过滤器。包含或不包含它,一个布尔选项。 -
您没有过滤。您正在为每个项目生成不同的值,因此您希望在值表达式中使用 条件表达式。
[mc.split('$', 1)[-1] if 'B' in mc else 'N/A' for mc in marketCapsUnclean]。查看副本。
标签: python