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

问题描述 投票:0回答:3

我想知道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 list extend
3个回答
54
投票

Python 中的

+
运算符被重载以连接列表,那么怎么样:

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

4
投票

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

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

0
投票

尝试使用 eval 对列表创建临时更改,例如:

li = [1, 2, 3, 4]
eval("li + [5, 6, 7]")

© www.soinside.com 2019 - 2024. All rights reserved.