1193 Stimmen

Verketten (Zusammenfügen) von Elementen in einer Liste zu einer einzigen Zeichenfolge

Wie kann ich eine Liste von Zeichenfolgen zu einer einzigen Zeichenfolge zusammenfügen?

Zum Beispiel, wenn ['this', 'is', 'a', 'sentence'] wie bekomme ich "this-is-a-sentence" ?


Für den Umgang mit ein paar Strings in <em>einzelne Variablen </em>siehe <a href="https://stackoverflow.com/questions/4435169">Wie kann ich in Python eine Zeichenkette an eine andere anhängen? </a>.

Für den umgekehrten Prozess - die Erstellung einer Liste aus einer Zeichenkette - siehe <a href="https://stackoverflow.com/q/4978787">Wie kann ich eine Zeichenfolge in eine Liste von Zeichen aufteilen? </a>o <a href="https://stackoverflow.com/questions/743806/">Wie zerlege ich eine Zeichenfolge in eine Liste von Wörtern? </a>nach Bedarf.

2012voto

Burhan Khalid Punkte 161333

Verwenden Sie str.join :

>>> words = ['this', 'is', 'a', 'sentence']
>>> '-'.join(words)
'this-is-a-sentence'
>>> ' '.join(words)
'this is a sentence'

267voto

Aaron S Punkte 4392

Eine allgemeinere Methode (die auch Zahlenlisten abdeckt), um eine Liste in eine Zeichenkette umzuwandeln, wäre folgende:

>>> my_lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> my_lst_str = ''.join(map(str, my_lst))
>>> print(my_lst_str)
12345678910

68voto

Wallebot Punkte 677

Es ist sehr nützlich für Anfänger zu wissen warum join eine String-Methode ist .

Am Anfang ist es sehr seltsam, aber danach ist es sehr nützlich.

Das Ergebnis von join ist immer eine Zeichenkette, aber das zu verbindende Objekt kann von vielen Typen sein (Generatoren, Liste, Tupel usw.).

.join ist schneller, weil es den Speicher nur einmal zuweist. Besser als die klassische Verkettung (siehe, ausführliche Erläuterung ).

Wenn man es einmal gelernt hat, ist es sehr bequem und man kann Tricks wie diesen anwenden, um Klammern hinzuzufügen.

>>> ",".join("12345").join(("(",")"))
Out:
'(1,2,3,4,5)'

>>> list = ["(",")"]
>>> ",".join("12345").join(list)
Out:
'(1,2,3,4,5)'

23voto

mounirboulwafa Punkte 1487
list_abc = ['aaa', 'bbb', 'ccc']

string = ''.join(list_abc)
print(string)
>>> aaabbbccc

string = ','.join(list_abc)
print(string)
>>> aaa,bbb,ccc

string = '-'.join(list_abc)
print(string)
>>> aaa-bbb-ccc

string = '\n'.join(list_abc)
print(string)
>>> aaa
>>> bbb
>>> ccc

18voto

SilentVoid Punkte 482

Aus der Zukunft bearbeiten : Bitte verwenden Sie nicht die unten stehende Antwort. Diese Funktion wurde in Python 3 entfernt und Python 2 ist tot. Selbst wenn Sie noch Python 2 verwenden, sollten Sie Python 3-fähigen Code schreiben, um das unvermeidliche Upgrade zu erleichtern.


Obwohl @Burhan Khalid's Antwort ist gut, ich denke, so ist es verständlicher:

from str import join

sentence = ['this','is','a','sentence']

join(sentence, "-") 

Das zweite Argument für join() ist optional und lautet standardmäßig " ".

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X