Python-Äquivalent für PHP implodieren?

Lesezeit: 2 Minuten

Benutzer-Avatar
pythonisch29033

Gibt es ein Äquivalent für PHPs implode in Python? Ich habe eine Reihe von Wörtern mit Trennzeichen eingelesen und aufgeteilt, und jetzt möchte ich sie in zufälliger Reihenfolge sortieren und die Wörter mit Leerzeichen dazwischen ausdrucken.

implode — Array-Elemente mit einem String verbinden

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

Benutzer-Avatar
Mathias

Verwenden Sie die Saiten Join-Methode.

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

Sie können jedem Iterable beitreten (nicht nur der list hier verwendet) und natürlich können Sie jede Zeichenfolge verwenden (nicht nur ' ') als Trennzeichen.

Wenn Sie eine zufällige Reihenfolge wünschen, wie Sie in Ihrer Frage gesagt haben, verwenden Sie Mischen.


Im Kommentar war die Frage, warum Python einen Fehler wirft, wenn Sie dies tun "glue".join(["startString", 123, "endString"]). join arbeitet mit einer iterierbaren Zeichenkette. In Python gibt es keine implizite Typkonvertierung.

Aber natürlich gibt es eine Lösung. Einfach selber umbauen.

"glue".join(map(str, ["startString",123,"endString"]))

  • join() funktioniert hervorragend, wenn Sie ein Array von Strings haben, aber wenn ein Mitglied des Arrays int anstelle eines Strings ist, erhalten Sie einen TypeError, php’s implode tut das nicht, selbst im strikten Modus =/ <?php declare(strict_types=1);var_dump(implode("glue",["startString",(int)123,"endString"])); gibt Ihnen string(31) "startStringglue123glueendString" aber in Python tun "glue".join(["startString",123,"endString"]); gibt Ihnen TypeError: sequence item 1: expected str instance, int found

    – Hansenrik

    1. Juni 2020 um 18:11 Uhr

Benutzer-Avatar
pythonisch29033

Okay, ich habe gerade eine Funktion gefunden, die das tut, was ich tun wollte;

Ich lese eine Datei mit Wörtern in einem Format wie:
Jack/Jill/my/kill/name/bucket

Ich habe es dann mit dem aufgeteilt split() Methode und sobald ich das Wort in einer Liste hatte, habe ich die Wörter mit dieser Methode verkettet:

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

  • Ich verstehe nicht, warum du mitmachen willst. Zuerst hast du eine Linie, du teilst sie in Zeichen auf und fügst sie dann wieder zusammen. Warum tauscht du die Zeichen nicht gleich aus? (Sie vermissen den ‘zufälligen’ Teil in Ihrer eigenen Antwort, der nicht mehr relevant ist?)

    – RvdK

    12. November 2014 um 16:51 Uhr


1358690cookie-checkPython-Äquivalent für PHP implodieren?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy