2013-03-18 20 views
6

Python'da .extend'u kullanmanın bir yolu olup olmadığını merak ediyorum, ancak orijinal listeyi değiştirmeyin. Bunun birkaç farklı şekilde google çalıştıPython: orjinal değişkenini mutasyona uğratmadan 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] 

, ama sadece bu tarif etmek doğru kelimeleri bulamadım: Böyle bir şey bakmak sonucunu istiyorum. Ruby'nin orjinal listeyi değiştirmek isterseniz, li.extend!([5,6,7]) gibi bir şey yapabileceksiniz, aksi takdirde orijinali mutasyona uğratmadan sonucu size verecektir. Aynı şey Python'da var mı?

Teşekkürler!

+0

! '' '' '' 'Ruby gibi seçenekler, özellikle Array yöntemlerinde vardır. Her ne kadar aşağıdaki cevaplar bu ideolojiye alternatifler sunmaktadır. – squiguy

cevap

16

Python + operatör listelerini bitiştirmek için aşırı yüklendi, yani yaklaşık nasıl:

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

+1 bariz bir şekilde – wim

0

Ben garip biliyorum ama işe yarar: Python sunmaktadır `sanmıyorum

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

'b = a [:]' muhtemelen daha iyi bir fikir olarak kabul edilir. –

İlgili konular