483 Stimmen

Eine Liste von Zeichen in eine Zeichenkette umwandeln

Wenn ich eine Liste von Zeichen habe:

a = ['a','b','c','d']

Wie konvertiere ich sie in eine einzige Zeichenfolge?

a = 'abcd'

4voto

yask Punkte 3078

Wenn die Liste Zahlen enthält, können Sie mit map() con join() .

Beispiel:

>>> arr = [3, 30, 34, 5, 9]
>>> ''.join(map(str, arr))
3303459

3voto

Bill Punkte 55
h = ['a','b','c','d','e','f']
g = ''
for f in h:
    g = g + f

>>> g
'abcdef'

2voto

Jean-François Fabre Punkte 131296

Neben str.join was der natürlichste Weg ist, eine Möglichkeit ist die Verwendung von io.StringIO und missbrauchen writelines um alle Elemente in einem Zug zu schreiben:

import io

a = ['a','b','c','d']

out = io.StringIO()
out.writelines(a)
print(out.getvalue())

Drucke:

abcd

Wenn Sie diesen Ansatz mit einer Generatorfunktion oder einer Iterablen verwenden, die nicht eine tuple oder eine list speichert es die temporäre Listenerstellung, die join tut, um die richtige Größe auf einmal zuzuweisen (und eine Liste von 1-Zeichen-Zeichenfolgen ist speichertechnisch sehr teuer).

Wenn Sie wenig Speicherplatz haben und ein faul ausgewertetes Objekt als Eingabe haben, ist dieser Ansatz die beste Lösung.

0voto

Tonechas Punkte 12615

Sie können auch Folgendes verwenden operator.concat() wie diese:

>>> from operator import concat
>>> a = ['a', 'b', 'c', 'd']
>>> reduce(concat, a)
'abcd'

Wenn Sie Python 3 verwenden, müssen Sie vorangestellt werden:

>>> from functools import reduce

da die eingebaute reduce() wurde aus Python 3 entfernt und befindet sich jetzt in functools.reduce() .

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