Python'da bir karakter dizisini başka bir karakter dizisine eklemek için aşağıdakiler dışında etkili bir yol istiyorum.
var1 = "foo"
var2 = "bar"
var3 = var1 + var2
Kullanılabilecek iyi bir yerleşik yöntem var mı?
Zamanından önce optimize etmeyin. Dize birleştirmelerinin neden olduğu bir hız darboğazı olduğuna inanmak için bir nedeniniz yoksa, sadece +
ve +=
ile devam edin:
s = 'foo'
s += 'bar'
s += 'baz'
Bununla birlikte, Java'nın StringBuilder'ı gibi bir şey hedefliyorsanız, kanonik Python deyimi, öğeleri bir listeye eklemek ve ardından hepsini sonunda birleştirmek için str.join
kullanmaktır:
l = []
l.append('foo')
l.append('bar')
l.append('baz')
s = ''.join(l)
str1 = "Hello"
str2 = "World"
newstr = " ".join((str1, str2))
Bu, str1 ve str2'yi ayırıcı olarak bir boşlukla birleştirir. Ayrıca "".join(str1, str2, ...)
da yapabilirsiniz. str.join()` bir yinelenebilir alır, bu nedenle dizeleri bir listeye veya bir tuple'a koymanız gerekir.
Bu, yerleşik bir yöntem için olabildiğince verimli.
Büyük bir dize oluşturmak için çok sayıda ekleme işlemi yapmanız gerekiyorsa, StringIO veya cStringIO kullanabilirsiniz. Arayüz bir dosya gibidir. yani: ona metin eklemek için yazarsınız
.
Eğer sadece iki dizeyi ekliyorsanız o zaman sadece +
kullanın.