Gibt es eine einfachere Möglichkeit, Zeichenfolgenelemente in einer Liste zu einer einzelnen Zeichenfolge zu verknüpfen? Kann ich die str.join()
Funktion nutzen?
Dies ist beispielsweise der Eingang ['this','is','a','sentence']
und dies ist der gewünschte Ausgangthis-is-a-sentence
sentence = ['this','is','a','sentence']
sent_str = ""
for i in sentence:
sent_str += str(i) + "-"
sent_str = sent_str[:-1]
print sent_str
'-'.join(sentence)
Antworten:
Verwendung
join
:quelle
sentence.join(" ")
, dass es auch funktioniert, da die umgekehrte Operation istlist.split(" ")
. Haben Sie eine Idee, ob dies zu Pythons Methoden für Listen hinzugefügt wird?list.join
würde für eine beliebige Liste ungeeignet sein.str.join
Andererseits kann das Argument von eine beliebige "iterierbare" Folge von Zeichenfolgen sein, nicht nur eine Liste. Das einzige, was Sinn machen würde, ist eine eingebaute Funktionjoin(list, sep)
; Es gibt eine im (im Grunde veralteten)string
Modul, wenn Sie es wirklich wollen.' '.join(['this', 'is', 'a', 'sentence'])
Eine allgemeinere Methode zum Konvertieren von Python-Listen in Zeichenfolgen wäre:
quelle
map(str, my_lst)
würde ausreichen , um ohne die Liste aufzählt =)int
aber es kann sich um einen beliebigen Typ handeln, der als Zeichenfolge dargestellt werden kann.' '.join(map(lambda x: ' $'+ str(x), my_lst))
würde zurückkehren'$1 $2 $3 $4 $5 $6 $7 $8 $9 $10'
Für Anfänger ist es sehr nützlich zu wissen, warum Join eine String-Methode ist .
Am Anfang ist es sehr seltsam, aber danach sehr nützlich.
Das Ergebnis der Verknüpfung ist immer eine Zeichenfolge, aber das zu verbindende Objekt kann von vielen Typen sein (Generatoren, Listen, Tupel usw.).
.join
ist schneller, weil es nur einmal Speicher zuweist. Besser als die klassische Verkettung (siehe erweiterte Erklärung ).Sobald Sie es gelernt haben, ist es sehr bequem und Sie können solche Tricks ausführen, um Klammern hinzuzufügen.
quelle
Obwohl die Antwort von @Burhan Khalid gut ist, denke ich, dass sie so verständlicher ist:
Das zweite Argument für join () ist optional und standardmäßig "".
BEARBEITEN: Diese Funktion wurde in Python 3 entfernt
quelle
Wir können angeben, wie wir die Zeichenfolge verbinden müssen. Anstelle von '-' können wir '' verwenden
quelle
Wir können auch die Reduktionsfunktion von Python verwenden:
quelle
join
?quelle