Setara dengan Python untuk implode PHP?

103

Apakah ada persamaan untuk implode PHP dengan Python? Saya telah membaca dan membagi sekumpulan kata yang dipisahkan, dan sekarang saya ingin mengurutkannya dalam urutan acak dan mencetak kata-kata tersebut dengan spasi di antaranya.

implode - Menggabungkan elemen array dengan string

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

pythonian29033
sumber

Jawaban:

185

Gunakan metode gabungan string .

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

Anda dapat bergabung dengan iterable apa pun (tidak hanya yang listdigunakan di sini) dan tentu saja Anda dapat menggunakan string apa pun (tidak hanya ' ') sebagai pembatas.

Jika Anda menginginkan urutan acak seperti yang Anda katakan dalam pertanyaan Anda, gunakan shuffle .

Matthias
sumber
join () berfungsi dengan baik jika Anda memiliki array string, tetapi jika ada anggota array yang int dan bukan string, Anda akan mendapatkan TypeError, implode php tidak melakukannya, bahkan dalam mode ketat = / <?php declare(strict_types=1);var_dump(implode("glue",["startString",(int)123,"endString"]));memberi Anda string(31) "startStringglue123glueendString"tetapi dengan python melakukan "glue".join(["startString",123,"endString"]);memberi AndaTypeError: sequence item 1: expected str instance, int found
hanshenrik
14

Oke, saya baru saja menemukan fungsi yang melakukan apa yang ingin saya lakukan;

Saya membaca di file dengan kata-kata dalam format seperti: Jack/Jill/my/kill/name/bucket

Saya kemudian membaginya menggunakan split()metode dan setelah saya memiliki kata ke dalam daftar, saya menggabungkan kata-kata dengan metode ini:

concatenatedString = ' - '.join(myWordList)
# ie: delimeter.join(list)
pythonian29033
sumber
3
Saya tidak mengerti mengapa Anda ingin bergabung. Pertama Anda memiliki garis, Anda membaginya menjadi karakter dan kemudian menggabungkannya lagi. Mengapa Anda tidak mengganti karakter di tempat pertama? (Anda melewatkan bagian 'acak' dalam jawaban Anda sendiri, tidak relevan lagi?)
RvdK