PHP'nin implode'u için Python eşdeğeri?


103

Python'da PHP'nin implode'unun bir eşdeğeri var mı? Bir dizi sınırlandırılmış kelimeyi okudum ve böldüm ve şimdi bunları rastgele sıralara göre sıralamak ve kelimeleri arada boşluklar bırakarak yazdırmak istiyorum.

implode - Dizi öğelerini bir dizeyle birleştirir

http://php.net/manual/en/function.implode.php

Yanıtlar:


186

Dizelerin birleştirme yöntemini kullanın .

print ' '.join(['word1', 'word2', 'word3'])

Herhangi bir yinelenebilirliğe (yalnızca listburada kullanılanlara değil) katılabilirsiniz ve elbette ' 'sınırlayıcı olarak herhangi bir dizeyi (yalnızca değil ) kullanabilirsiniz .

Sorunuzda söylediğiniz gibi rastgele bir sıra istiyorsanız, karıştır'ı kullanın .


join (), bir dizi dizeniz varsa harika çalışır, ancak dizinin herhangi bir üyesi bir dizge yerine int ise, bir TypeError alırsınız, php'nin implode'u katı modda bile bunu yapmaz = / <?php declare(strict_types=1);var_dump(implode("glue",["startString",(int)123,"endString"]));size string(31) "startStringglue123glueendString"ancak "glue".join(["startString",123,"endString"]);TypeError: sequence item 1: expected str instance, int found
python'da

14

Tamam, yapmak istediğimi yapan bir işlev buldum;

Aşağıdaki formatta kelimeler içeren bir dosyada okudum: Jack/Jill/my/kill/name/bucket

Daha sonra split()yöntemi kullanarak onu böldüm ve kelimeyi bir listeye aldığımda, kelimeleri bu yöntemle birleştirdim:

concatenatedString = ' - '.join(myWordList)
# ie: delimeter.join(list)

3
Neden katılmak istediğini anlamıyorum. Önce bir satırınız var, onu karakterlere böldünüz ve sonra tekrar birleştiriyorsunuz. Neden ilk başta karakterleri değiştirmiyorsunuz? (Kendi cevabınızdaki 'rastgele' kısmını
kaçırdınız
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.