Bahsi geçen kod da çalışır tabii ancak bu tarz işlemleri String bazlı yapmak kaynak tüketimi bakımından pek de iyi bir fikir değil. Gerçi söz konusu Python olunca kaynak tüketiminin zaten önemsenmediği görülüyor. Yine de programlamayı öğreniyorsunuz sonuçta, yarın kısıtlı kaynaklarla low level bir dilde bu işlemleri yapmak pahalı olur.
Stringler immutable objelerdir, yani değiştirilemezler. Siz üzerinde bir değişiklik yaptığınızda aslında arkada yeni Stringler oluşturuluyor, gereksiz olanlar da temizlenene kadar bellekte kalıyor. Bunları Java üzerinden anlatıyorum, Python'da bunun nasıl olduğundan pek emin değilim ancak çok yüksek ihtimalle aynı olmalı.