Python:list.extend不改变原始变量
我想知道Python中是否有一种方法可以使用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有这样的功能,如果您真的想更改原始列表,您可以
.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[:]
可能会被认为是一个更好的主意。