扩展Python列表“内联”

时间:2015-03-15 08:20:51

标签: python list

我正在寻找内联工作的 list.extend()方法的替代方法。

而不是

x = range(15,30,3)
x.extend([0])
print (x)

>>> [15, 18, 21, 24, 27, 0]

我需要一个内联工作的等效项,比如

print range(15,30,3).extend([0])

>>> None

但是extend不会返回列表本身。

是否有任何花哨的开箱即用的命令来实现同样的目标?

2 个答案:

答案 0 :(得分:9)

只需将这些列表与+运算符连接:

range(15, 30, 3) + [0]

或者,如果您需要迭代器且list很大,请使用itertools.chain

import itertools
it = itertools.chain(range(15, 30, 3), [0])

快速说明:range在Python 3+中创建了一个range对象,它不允许连接:

  

范围实现除了以外的所有常见序列操作   连接和重复(由于范围对象可以   仅表示遵循严格模式和重复的序列   连接通常会违反该模式。)

答案 1 :(得分:1)

在Python 3+中,就像@vaultah所说的那样,range创建了range对象。但是您可以先从范围对象创建list

x = list(range(15, 30, 3)) + [0]