Wenn ich eine Liste von Zeichen habe:
a = ['a','b','c','d']
Wie konvertiere ich sie in eine einzige Zeichenfolge?
a = 'abcd'
Wenn ich eine Liste von Zeichen habe:
a = ['a','b','c','d']
Wie konvertiere ich sie in eine einzige Zeichenfolge?
a = 'abcd'
Das funktioniert in vielen gängigen Sprachen wie JavaScript und Ruby, warum nicht auch in Python?
>>> ['a', 'b', 'c'].join('')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'list' object has no attribute 'join'
Seltsamerweise ist in Python die join
Methode ist auf der str
Klasse:
# this is the Python way
"".join(['a','b','c','d'])
Pourquoi join
ist keine Methode in der list
Objekt wie in JavaScript oder anderen gängigen Skriptsprachen? Das ist ein Beispiel dafür, wie die Python-Gemeinschaft denkt. Da join eine Zeichenkette zurückliefert, sollte es in der String-Klasse und nicht in der List-Klasse platziert werden, so dass die str.join(list)
Methode bedeutet: Zusammenfügen der Liste zu einer neuen Zeichenkette mit str
als Trennzeichen (in diesem Fall str
ist eine leere Zeichenkette).
Irgendwie habe ich diese Art zu denken nach einer Weile lieben gelernt. Ich kann mich über eine Menge Dinge im Python-Design beschweren, aber nicht über seine Kohärenz.
Wenn Ihr Python-Interpreter alt ist (z.B. 1.5.2, was bei einigen älteren Linux-Distributionen üblich ist), haben Sie möglicherweise keine join()
als Methode für ein beliebiges altes String-Objekt zur Verfügung, und Sie müssen stattdessen das String-Modul verwenden. Beispiel:
a = ['a', 'b', 'c', 'd']
try:
b = ''.join(a)
except AttributeError:
import string
b = string.join(a, '')
Die Zeichenfolge b
wird 'abcd'
.
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.