带有列表追加函数的单个语句中的for循环

时间:2016-05-05 12:05:23

标签: python list for-loop

当我执行以下代码时,我得到了正确的结果:

for i in quorum:
    lst.append(i.strip('l'))
 print lst

 op:
    ['val1', 'val2', 'val3']

但是当我尝试将for循环和list append函数放在一行时,我没有得到预期的输出(即上面的列表元素)。

我错过了什么?为什么它会这样?

lst.append(i.strip('l') for i in quorum)
print lst

op:
[<generator object <genexpr> at 0x2996cd0>]

1 个答案:

答案 0 :(得分:5)

parens中的表达式是生成器表达式(genex)。它是可迭代的,但list.append()不会迭代。幸运的是list.extend()确实:

lst.extend(i.strip('l') for i in quorum)