2016-10-06 2 views
0

Zum Beispiel habe ich eine Zeichenfolge wie diese haben ...Python: Wie mache ich eine Zeichenkette mit einer Teilkette zu einer Liste?

StringA = "a city a street a room a bed" 

Ich möchte diese Zeichenfolge schneiden "a " eine Teil verwenden und einen list daraus machen. So sieht das Ergebnis aus ...

Es wäre OK, wenn noch ein paar Leerzeichen übrig sind. Wie kann ich das machen? Vielen Dank!

+1

Hinweis, alle gegebenen Antworten werden nicht funktionieren, wenn Sie eine Zeichenfolge ein Wort der Endung 'a' enthalten, wie' a cola' –

Antwort

1

Dies sollte auch arbeiten:

ListA = StringA.split("a ")[1:] 

Die [1:] nach dem Die Split-Anweisung wurde hinzugefügt, weil der Teil vor dem ersten 'a' (der '' ist) als erstes Element von List behandelt wird A und das willst du nicht.

Ihre Ausgabe sieht genauso aus wie die, die Sie sich wünschen:

ListA = ['city ', 'street ', 'room ', 'bed'] 
1

können Sie split verwenden:

list_a = string_a.split('a ') 
+0

schlägt fehl, wenn 'Stringa =" eine cola eine straße ein zimmer ein bett "' –

1

Sie es in einer Zeile tun:

filter(len, "a city a street a room a bed".split("a ")) 
+0

'filter()' wird 'filter' objekt zurückgeben. –

+0

Es gibt eine Liste – fafl

+0

Okay, tut mir leid, für Python 2 [ja] (https://docs.python.org/2/library/functions.html#filter), für Python 3 [nein] (https: //docs.python.org/3/library/functions.html#filter) –

0

Dies wird von String machen Liste:

re.split(r'\s*\ba\b\s*', a) 

Output in etwa so sein sollte:

['', 'city', 'cola', 'room', 'bed'] 

Um also leere Strings aus der Liste zu entfernen, können Sie Folgendes verwenden:

[item for item in re.split(r'\s*\ba\b\s*', a) if item] 

Welche produzieren:

['city', 'cola', 'room', 'bed'] 
Verwandte Themen