Bir dize listemizin olduğunu düşünelim. Bu listedeki dize öğelerini tek bir dizede birleştirmenin basit bir yolu var mı? Bir döngü kullanıyor olsak aşağıdaki gibi yapabiliriz:
sentence = ['this','is','a','sentence']
sent_str = ""
for i in sentence:
sent_str += str(i) + "-"
sent_str = sent_str[:-1]
print sent_str
Çıktı:
this-is-a-sentence
.join
Bunun yerine str.join
de kullanabiliriz:
>>> sentence = ['this', 'is', 'a', 'sentence']
>>> '-'.join(sentence)
'this-is-a-sentence'
>>> ' '.join(sentence)
'this is a sentence'
Python listelerini dizelere dönüştürmenin daha genel bir yolu da şöyle olur:
>>> my_lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> my_lst_str = ''.join(map(str, my_lst))
>>> print(my_lst_str)
'12345678910'
Bu örnekte dikkat ederseniz liste öğeleri dize değil int
türünden.
Başlangıçta .join kullanmak garip gelebilir. Ama .join kullanımının oldukça yararlı sonuçları var.
Örneğin birleştirmenin sonucu her zaman bir dizedir, ancak birleştirilecek nesne birçok türde (sayı, liste, diziler vb.) olabilir.
.join
daha hızlıdır, çünkü bellekte yalnızca bir kez yer ayırır. Klasik birleştirmeden daha iyidir.