2016-12-20 4 views
-4

Bei einer Zeichenkette mit Worten aller Endung zur Liste (einige Leerzeichen zu):Wie Zeichenfolge mit Kommas konvertieren mit Komma mit Kommas in Python

WordString = 'word one, word-two, word3,' 

Wie konvertiere ich den String in eine Liste, die Räume zu halten und Kommas?

WordList = ['word one,','word-two,','word3,'] 
+0

Ihr Ausgangs Sie zeigt deutlich, * nicht * die Räume zu halten. – jonrsharpe

+0

@jonrsharpe es für das erste "Wort eins" tut – corn3lius

+0

@jonrsharpe Ich nehme an "Wort eins" –

Antwort

4

Sie können diese Strings mit dem split() Methode tun und eine Liste Verständnis:

WordList = [s.strip() + ',' for s in WordString.split(',') if s.strip()] 

Die hier gemachten Annahmen, basierend auf Ihrem Beispiel:

  • Sie wollen nur halten interior Leerzeichen (Leerzeichen zwischen Wörtern), keine führenden/nachgestellten Leerzeichen.
  • Sie möchten nach jeder Zeichenfolge in der endgültigen Liste ein Komma beibehalten.
+2

sollte [if s! = ''] Am Ende der Liste Verständnis hinzufügen, sonst erhalten Sie ein zusätzliches Komma – Lina

+2

@Lina 'if s' ist mehr Python, hinzugefügt. – Amber

+1

@RenierDelport Nach dem letzten Komma gibt es wahrscheinlich ein paar zusätzliche Leerzeichen. Versuchen Sie, wie oben beschrieben ein '.strip()' in der 'if'-Bedingung hinzuzufügen. – Amber

0

Versuchen Sie dies mit list comprehension:

['{},'.format(i).strip() for i in WordString.split(',') if i] 

split() verwendet Kommaseparator eine Liste von Strings zu bilden.

strip() wird verwendet, um nachfolgende Leerzeichen aus jeder Zeichenfolge der Ergebnisliste zu entfernen.

Ausgang:

>>> WordString = 'word one, word-two, word3,' 
>>> 
>>> ['{},'.format(i).strip() for i in WordString.split(',') if i] 
['word one,', 'word-two,', 'word3,'] 
Verwandte Themen