是否可以像这样写一行:<statement> if <cond> else <statement>
. 我的意思不是像a = 1 if 1 else 2
.
例子:
我有一个列表p
,它本身就有列表。假设我得到一个 input inputIter
。我想做以下事情:
for input in inputIter:
if <condition>: p+=[[input]] # generate new list
else: p[-1]+=[input] # append to latest list
然后我对自己想,必须有一种方法可以使它成为单线,所以我尝试了这个:
for input in inputIter:
p+=[[input]] if <condition> else p[-1]+=[input]
但这会产生
Syntax error: invalid syntax ^
(在哪里=
)。有解决方法吗?我知道这可能不是最好的例子。我知道它可能看起来有点难看。但在我看来,它是可读的。