我正在寻找内联工作的 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不会返回列表本身。
是否有任何花哨的开箱即用的命令来实现同样的目标?
答案 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]