704 Stimmen

Wie kann man eine kommagetrennte Zeichenkette aus einer Liste von Zeichenketten erstellen?

Was wäre Ihre bevorzugte Methode, um Zeichenketten aus einer Sequenz so zu verketten, dass zwischen zwei aufeinanderfolgenden Paaren jeweils ein Komma hinzugefügt wird? Das heißt, wie kann man zum Beispiel abbilden, ['a', 'b', 'c'] まで 'a,b,c' ? (Die Fälle ['s'] y [] sollte abgebildet werden auf 's' y '' ).

In der Regel verwende ich dann etwas wie ''.join(map(lambda x: x+',',l))[:-1] aber auch das Gefühl, etwas unbefriedigt zu sein.

14voto

Douglas Leeder Punkte 50423

Willst du das nicht auch?

",".join(l)

Natürlich wird es komplizierter, wenn Sie die Werte in Anführungszeichen setzen oder Kommas auslassen müssen. In diesem Fall würde ich vorschlagen, einen Blick auf das csv-Modul in der Standardbibliothek zu werfen:

https://docs.python.org/library/csv.html

11voto

Shameem Punkte 2324
>>> my_list = ['A', '', '', 'D', 'E',]
>>> ",".join([str(i) for i in my_list if i])
'A,D,E'

my_list können alle Arten von Variablen enthalten. Dadurch wird das Ergebnis vermieden 'A,,,D,E' .

10voto

l=['a', 1, 'b', 2]

print str(l)[1:-1]

Output: "'a', 1, 'b', 2"

7voto

Peter Hoffmann Punkte 52200

@jmanning2k Die Verwendung eines Listenverständnisses hat den Nachteil, dass eine neue temporäre Liste erstellt wird. Die bessere Lösung wäre die Verwendung von itertools.imap, das einen Iterator zurückgibt

from itertools import imap
l = [1, "foo", 4 ,"bar"]
",".join(imap(str, l))

6voto

faiz-e Punkte 172

Wenn Sie die Abkürzung nehmen wollen :) :

','.join([str(word) for word in wordList])

Aber wenn du mit Logik angeben willst :) :

wordList = ['USD', 'EUR', 'JPY', 'NZD', 'CHF', 'CAD']
stringText = ''

for word in wordList:
    stringText += word + ','

stringText = stringText[:-2]   # get rid of last comma
print(stringText)

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