Python: list.extend 不改变原变量

23 投票
2 回答
17245 浏览
提问于 2025-04-17 19:28

我想知道在Python中有没有办法使用 .extend,但又不改变原来的列表。我希望结果看起来像这样:

>> li = [1, 2, 3, 4]  
>> li
[1, 2, 3, 4]  
>> li.extend([5, 6, 7])
[1, 2, 3, 4, 5, 6, 7]  
>> li
[1, 2, 3, 4]  

我试着用不同的方式在网上搜索这个,但就是找不到合适的词来描述它。Ruby有类似的功能,如果你真的想改变原来的列表,你可以这样做: li.extend!([5,6,7]),否则它只会给你结果,而不改变原来的列表。在Python中有没有类似的功能呢?

谢谢!

2 个回答

4

我知道这样做有点奇怪,但确实有效:

a = [1,2,3]
b = list(a)
b.extend([4,5])
54

在Python中,+这个符号被用来连接列表,也就是说它可以把两个列表合并在一起。那么,下面的代码会怎么样呢:

>>> li = [1, 2, 3, 4]
>>> new_list = li + [5, 6, 7]
>>> new_list
[1, 2, 3, 4, 5, 6, 7]

撰写回答