21

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

谢谢!

4

2 回答 2

52

Python 中的+运算符被重载以连接列表,那么如何:

>>> li = [1, 2, 3, 4]
>>> new_list = li + [5, 6, 7]
>>> new_list
[1, 2, 3, 4, 5, 6, 7]
于 2013-03-18T05:20:39.190 回答
3

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

a = [1,2,3]
b = list(a)
b.extend([4,5])
于 2013-03-18T05:23:27.010 回答