2013-03-18 11 views
6

Pythonで.extendを使用する方法があるのだろうかと思っていますが、元のリストは変更しません。私はこのいくつかの異なる方法をGoogleにしようとしたPython:元の変数を変更しないlist.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にも存在しますか?

ありがとうございます!

+0

私はPythonが 'を提供していますとは思いません! Rubyのような '! 'のオプションはArrayメソッドに特別にあります。しかし、以下の答えには、このイデオロギーの代わりがあります。 – squiguy

答えて

16

Pythonで+演算子はリストを連結するためにオーバーロードされているので、どの程度:

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

+1明らかな方法の1つである – wim

0

私はそれが厄介だが、それは動作します知っている:

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

'b = a [:]'はおそらくもっと良いアイデアと考えられます。 –

関連する問題