.join() yöntemi tam olarak ne yapar?
Python'da oldukça yeniyim ve dizeleri birleştirmek için tercih edilen yöntem olduğunu okuduğum .join()
ile tamamen kafam karıştı.
Denedim:
strid = repr(595)
print array.array('c', random.sample(string.ascii_letters, 20 - len(strid)))
.tostring().join(strid)
ve şöyle bir şey var:
5wlfgALGbXOahekxSs9wlfgALGbXOahekxSs5
Neden bu şekilde çalışıyor? 595`in otomatik olarak eklenmesi gerekmez mi?
205
3
Çıktılarınıza dikkatlice bakın:
Orijinal dizenizin "5", "9", "5" kısımlarını vurguladım. Python
join()
yöntemi bir string yöntemidir ve string ile birleştirilecek şeylerin bir listesini alır. Daha basit bir örnek açıklamaya yardımcı olabilir:Verilen listenin her bir öğesi arasına "," eklenir. Sizin durumunuzda, "list", ["5", "9", "5"] listesi olarak ele alınan "595" dize gösterimidir.
Görünüşe göre bunun yerine
+
arıyorsunuz:join` argüman olarak yinelenebilir bir şey alır. Genellikle bu bir listedir. Sizin durumunuzdaki sorun, bir dizenin kendisinin yinelenebilir olması ve her karakteri sırayla vermesidir. Kodunuz şu şekildedir:
bununla aynı şekilde hareket eder:
ve böylece dizenizi üretir:
Yinelenebilir karakter dizileri Python ile ilgili en kafa karıştırıcı başlangıç konularından biridir.
join() tüm liste öğelerini birleştirmek içindir. Sadece iki dizgiyi birleştirmek için "+" daha mantıklı olacaktır: