Birleştirme operatörü +, listelere uygulandığında, iki işleneninden her birinin tüm öğelerini içeren yeni bir liste döndüren ikili bir infix operatörüdür. list.append()Yöntem olduğu mutatorüzerinde listonun tek ekler object(özel örnekte liste halinde argüman cdeneğe) list. cÖrneğinizde bu, kendisine bir referans eklemeyle sonuçlanır (dolayısıyla sonsuz özyineleme).
'+' Birleştirmeye bir alternatif
list.extend()Yöntem ayrıca birleştirir bir mutatör yöntemdir sequencekonu ile argüman list. Özellikle, öğelerinin her birini sequenceyineleme sırasına göre ekler .
Bir kenara
Operatör olmak +, ifadenin sonucunu yeni bir değer olarak döndürür. Zincirleme olmayan bir mutatoryöntem olmak list.extend(), konu listesini yerinde değiştirir ve hiçbir şey döndürmez.
Diziler
Bunu, yukarıdaki Abel'in yanıtının listeler, diziler ve diziler tartışmasını karıştırarak neden olabileceği olası karışıklık nedeniyle ekledim.
Arraysintegral veri türlerinin dizilerini depolamanın daha verimli bir yolu olarak, sıralar ve listelerden sonra Python'a eklenmiştir. Karıştırmayın arraysile lists. Aynı değiller.
Gönderen dizi docs :
Diziler, dizi türleridir ve içlerinde depolanan nesnelerin türünün kısıtlı olması dışında, listeye çok benzer. Tür, nesne oluşturma sırasında, tek bir karakter olan bir tür kodu kullanılarak belirtilir.