Ich bin ziemlich neu in Python und bin völlig verwirrt darüber, .join()
was ich gelesen habe, ist die bevorzugte Methode zum Verketten von Zeichenfolgen.
Ich habe es versucht:
strid = repr(595)
print array.array('c', random.sample(string.ascii_letters, 20 - len(strid)))
.tostring().join(strid)
und bekam so etwas wie:
5wlfgALGbXOahekxSs9wlfgALGbXOahekxSs5
Warum funktioniert das so? Sollte das nicht 595
einfach automatisch angehängt werden?
Antworten:
Schauen Sie sich Ihre Ausgabe genau an:
Ich habe die "5", "9", "5" Ihrer ursprünglichen Zeichenfolge hervorgehoben. Die Python-
join()
Methode ist eine Zeichenfolgenmethode und enthält eine Liste der Dinge, die mit der Zeichenfolge verknüpft werden sollen. Ein einfacheres Beispiel könnte helfen, Folgendes zu erklären:Das "," wird zwischen jedem Element der angegebenen Liste eingefügt. In Ihrem Fall ist Ihre "Liste" die Zeichenfolgendarstellung "595", die als Liste ["5", "9", "5"] behandelt wird.
Es scheint, dass Sie
+
stattdessen suchen :quelle
join
die nützliche Eigenschaft, die Umkehrung vonsplit
( docs.python.org/library/stdtypes.html#str.split )','.join(['a', 'b', 'c', ''])
gibt "a, b, c"string.join
mitos.path.join
dem tatsächlich Pfade verkettetjoin
nimmt eine iterierbare Sache als Argument. Normalerweise ist es eine Liste. Das Problem in Ihrem Fall ist, dass eine Zeichenfolge selbst iterierbar ist und jedes Zeichen der Reihe nach ausgibt. Ihr Code lautet wie folgt:was genauso verhält:
und so entsteht dein String:
Strings als iterables ist eines der verwirrendsten Anfangsprobleme mit Python.
quelle
Um eine Zeichenfolge anzuhängen, verknüpfen Sie sie einfach mit dem
+
Zeichen.Z.B
join
verbindet Strings mit einem Trennzeichen. Das Trennzeichen platzieren Sie direkt vor demjoin
. Z.BJoin verwendet eine Liste von Zeichenfolgen als Parameter.
quelle
join () dient zum Verketten aller Listenelemente. Für die Verkettung von nur zwei Zeichenfolgen wäre "+" sinnvoller:
quelle
Wenn Sie Join verwenden möchten, um Ihre beiden Zeichenfolgen einfach zu verketten, gehen Sie folgendermaßen vor:
quelle
Es gibt eine gute Erklärung dafür, warum es teuer ist, hier
+
eine große Anzahl von Zeichenfolgen zu verkettenquelle
Wenn Sie dies als Eingabe bereitstellen,
Python gibt dies als Ausgabe zurück:
quelle
Wenn dies eine Eingabe ist, können wir mit der JOIN-Methode den Abstand zwischen den Wörtern hinzufügen und die Liste auch in die Zeichenfolge konvertieren.
Dies ist die Python-Ausgabe
quelle
"" .join kann verwendet werden, um die Zeichenfolge in einer Liste in eine Variable zu kopieren
quelle