Python’da X += Y ve X = X + Y arasındaki fark
Bir nesneyi başka bir nesneye eklemek için genellikle şu ifade kullanılır
1 | X = X + Y |
Burada X’deki değeri alıp Y ile beraber yine X’e kayıt ediyor. Bu yöntem çokca kullanıldığı için C,Python gibi dillerde şu ifade de kullanılabiliyor
1 | X += Y |
Bu yukarıdaki ifade ile aynı. Velakin Python’da örneğin listeler ile uğraşırken bunu kullanmak yerine list komutunun kendi içinde barındırdığı özellikleri kullanabiliriz, örneğin .append veya .extend gibi. L = [1,2] ifadesi için şu örneği ele alalım
1 | L = L + [3] |
Burada 3 sayısını L listesine ekliyebiliyoruz. Aynı işlemi şu şekilde de yapmamız mümkün
1 | L.append(3) |
Gördüğünüz gibi ikiside aynı işlemi yapıyor. Fakat yukarıdaki örnekte, yani + kullandığımı örnek diğerine göre çok daha yavaş. Çünkü ekleme yapılırken yeni bir nesne oluşturuluyor, soldaki L listesine kopyalanıyor, bu da sağ tarafdaki L listesine kopyalanıyor. Halbuki L.append yaparken var olan L listesine 3 sayısı ekleniyor.
Şimdi Python’da şöyle bir özellik var. Kitabı okurken gördüm. Eğer siz L listesine 3 sayısını şu şekilde
1 | L += [3] |
eklerseniz, aynı L.append() şeklinde ekliyor. Yani bizim için daha avantajlı oluyor(daha hızlı olduğu için). Bu demek ki, Python’da eklemeler yapılırken kesinlikle +=(-=,*=,..) gibi ifadeler(Ingilizce’de: augmented assignment) kullanmamız bizim için daha iyi olacaktır.
Not:(Python öğrenirken bana göre ilginç ve işe yarayan ipuçları sizlerle bu şekilde paylaşmayı düşünüyorum)
Etiketler: augmented assignment, python
Kasım 24, 2007
Yorumlar(0)
Son Yorumlar
Etiketler (r:30)
Tavsiyeler (r:5)