Еквівалент Python для імплоду PHP?


103

Чи є еквівалент імплоду PHP в Python? Я прочитав і розділив набір розділених слів, і тепер я хочу їх розібрати у випадкових порядках і роздрукувати слова з пробілами між ними.

implode - Об’єднайте елементи масиву з рядком

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

Відповіді:


185

Використовуйте метод приєднання рядків .

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

Ви можете приєднатись до будь-якого ітерабельного (не тільки listвикористовуваного тут), і, звичайно, ви можете використовувати будь-який рядок (не тільки ' ') як роздільник.

Якщо ви хочете випадкове замовлення, як ви сказали у своєму запитанні, використовуйте перетасування .


join () чудово працює, якщо у вас є масив рядків, але якщо будь-який член масиву є int замість рядка, ви отримаєте TypeError, імплід php цього не робить, навіть у строгому режимі = / <?php declare(strict_types=1);var_dump(implode("glue",["startString",(int)123,"endString"]));дає вам string(31) "startStringglue123glueendString"але в "glue".join(["startString",123,"endString"]);TypeError: sequence item 1: expected str instance, int found
пітоні

14

Гаразд, я щойно знайшов функцію, яка виконує те, що я хотів зробити;

Я читаю у файлі слова у такому форматі: Jack/Jill/my/kill/name/bucket

Потім я розділив його за допомогою split()методу, і як тільки я взяв слово в список, я поєднав слова з цим методом:

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

3
Я не розумію, чому ти хочеш приєднатися. Спочатку у вас є рядок, ви розділите його на символи, а потім знову приєднаєтесь. Чому б ви не замінили персонажів в першу чергу? (Ви пропускаєте "випадкову" частину у власній відповіді, вже не актуальна?)
RvdK
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.