如何在没有 list.extend 方法和没有 '+' 运算符的情况下扩展列表

How to extend lists without list.extend method and without '+' operator

我打算做一个扩展函数,一个可以作为 list.extend 方法工作的函数,但我不希望它包含 list.extend 方法或 '+' 运算符,并且在另外我需要扩展 'x' 而不是 'y' (你会看到)。

首先,这是x和y:

x = [4, 5, 6]
y = [1, 2, 3]

我试过这个: x = y, x 但它给了我这个结果:([1, 2, 3], [4, 5, 6]),我 运行 没有想法......

我想做的事情(没有扩展方法和 '+' 运算符)将如下所示:

x = [4, 5, 6]
y = [1, 2, 3]
extending_func(x, y)
[1, 2, 3, 4, 5, 6]

我想做一个类似 "extending_func" 的功能,但是我没有成功地将它全部放到一个列表中,而且我不知道我是否需要将列表的类型更改为其他东西才能做到这一点,或者我只需要一个简单的想法来解决它。我也尝试使用 list.append,但它给了我下一个结果(只是为了尝试这个想法,但正如我写的那样,我需要扩展 x 而不是 y):

x = [4, 5, 6]
y = [1, 2, 3]
y.append(x)
[1, 2, 3, [4, 5, 6]]

Xay answer 的切片很聪明,但它会在前面插入数据。

一点调整:

x = [1,2,3]
y = [4,5,6]
def extending_func(x, y):
   x[len(x):] = y

extending_func(x,y)
print(x)

打印:

  [1, 2, 3, 4, 5, 6]

使用列表切片将 y 附加到 x

x = [4, 5, 6]
y = [1, 2, 3]
x[:0] = y
print(x)  # [1, 2, 3, 4, 5, 6]

请注意,在这种情况下,附加列表的顺序非常重要; y = [1, 2, 3] 被添加到 x = [4, 5, 6] 的前面(在索引 0 处)(有关更好的方法,请参阅