koddla

Yazılımcıları bilgi ile güçlendirir.

Python’da bir listedeki öğeleri dize olarak nasıl birleştiririz?

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.

Bir yanıt yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Back to top