den*_*var 9 python list-comprehension list
我正在用Python编写列表理解:
[2 * x if x > 2 else add_nothing_to_list for x in some_list]
Run Code Online (Sandbox Code Playgroud)
我需要"add_nothing_to_list"部分(逻辑的else部分)实际上什么都不是.
Python有办法做到这一点吗?特别是,有没有办法说a.append(nothing)
哪个会a
保持不变.这可以是编写通用代码的有用功能.
the*_*eye 16
只需将条件移至最后
[2 * x for x in some_list if x > 2]
Run Code Online (Sandbox Code Playgroud)
引用列表理解文档,
列表推导由括号组成,括号包含一个表达式后跟一个
for
子句,然后是零个或多个for
或if
子句.结果将是一个新的列表,该列表是通过在其后面的for
和if
子句的上下文中评估表达式而得到的.
在这种情况下,表达式是2 * x
一个for
语句for x in some_list
,然后是一个if
语句,if x > 2
.
这种理解可以像这样理解
result = []
for x in some_list:
if x > 2:
result.append(x)
Run Code Online (Sandbox Code Playgroud)