Python:list.extend不改变原始变量

Python:list.extend不改变原始变量,python,list,extend,Python,List,Extend,我想知道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有这样的功能,如果您真的想更改原始列表,您可以

我想知道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中是否存在同样的东西


谢谢

Python中的
+
操作符被重载以连接列表,那么:

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

我知道这很尴尬,但很有效:

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

我不认为Python提供了
或不
Ruby在其数组方法中特别提供的选项。尽管如此,下面的答案可以替代这种思想。
b=a[:]
可能会被认为是一个更好的主意。