Python 3 string.join () äquivalent?

73

Ich habe die Methode string.join () in Python 2 verwendet, aber es scheint, dass sie in Python 3 entfernt wurde. Was ist die entsprechende Methode in Python 3?

Mit der Methode string.join () kann ich mehrere Zeichenfolgen mit einer Zeichenfolge zwischen jeder anderen Zeichenfolge kombinieren. Zum Beispiel würde string.join (("a", "b", "c"), ".") "Abc" ergeben.

Dennis
quelle
8
string.joinist in Python 2 veraltet. Sie würden es also auch '.'.join()in Python 2 verwenden.
Rubik
Okay, ich werde das im Hinterkopf behalten :)
Dennis
@ Rubik das ist natürlich, wenn Sie nicht import string;)
BoltzmannBrain
@ alavin89 Es tut mir leid, aber ich verstehe nicht, was du sagst. Alle Zeichenfolgenfunktionen, die zu Methoden wurden, sind veraltet. Ob Sie das Modul importieren oder nicht.
Rubik
1
@ rrrik- stringMethoden werden zugunsten von strMethoden nicht mehr unterstützt. In den meisten Fällen möchten Sie Ihren pythonischen '.'.join()Ansatz verwenden, aber es gibt auch legitime, pythonische Verwendungen für str.join()(früher string.join()). Beispielsweise möchten Sie manchmal, dass die Joining-Str zur Laufzeit konfigurierbar ist und die Funktion (zusammen mit der Joining-Str ) an andere Elemente einer String-Verarbeitung oder einer NLP-Pipeline weitergibt.
Kochfelder

Antworten:

71

'.'.join()oder ".".join().. Also hat jede String- Instanz die Methodejoin()

Tim
quelle
4
Übrigens sollten Sie die Methoden auch in 2.x verwenden.
33

str.join() funktioniert gut in Python 3, Sie müssen nur die Reihenfolge der Argumente richtig machen

>>> str.join('.', ('a', 'b', 'c'))
'a.b.c'
Kochfelder
quelle
4
... und das liegt daran, dass im Allgemeinen obj.method(args)technisch gleichbedeutend mit dem objclass.method(obj, args). Meine +1. Wie auch immer, das Tim ist in Python üblicher.
Pepr
1
Ja, danke. Ich persönlich benutze auch @ Tims Ansatz, wenn ich kann. Manchmal benötigen Sie die joinFunktion jedoch, bevor Sie die Trennzeichenfolge instanziieren können (um sie an einen Middleware-Konstruktor, Serializer usw. zu übergeben). Und @Dennis suchte nach dem Python3-Äquivalent zu string.join, und dies ist das einzige, das mir bekannt ist.
Kochfelder
Ja. Ich verstehe die Motivation. Dies ist absolut richtig;)
Pepr
14

Es gibt Methoden joinfür Zeichenfolgenobjekte:

".".join(("a","b","c"))

Werwindel
quelle