2010-09-01 15 views
5

Ich habe eine Liste:So entfernen Sie Leerzeichen aus Zeichenfolgen in einer Python-Liste Vorder- und Hinter

row=['hi', 'there', 'how', ...........'some stuff is here are ','you'] 

wie Sie row[8]='some stuff is here are '

wenn das letzte Zeichen ist ein Raum sehen kann ich alles bekommen möchte bis auf das letzte Zeichen wie folgt:

if row[8][len(row[8])-1]==' ': 
    row[8]=row[8][0:len(row[8])-2] 

Diese Methode funktioniert nicht. Kann jemand bitte eine bessere Syntax vorschlagen?

+1

Was du mit „funktioniert nicht“ meine ich? Welchen Fehler bekommst du? –

+0

Eigentlich kann ich nicht sehen, dass 'row [8]' '' einige Sachen sind hier'' ist - Sie haben diesen Teil weggelassen. Wenn es so wäre, hätte der Code, den Sie hatten, obwohl er nicht der pythonischste war, funktioniert. – Thanatos

+0

@Thanatos können Sie bitte vorschlagen, wie ich es mehr python –

Antwort

7
row = [x.strip() for x in row] 

(wenn Sie nur Leerzeichen am Ende erhalten möchten, verwenden Sie rstrip)

+0

Dadurch werden auch führende Leerzeichen entfernt. Das OP könnte das nicht wollen. Siehe 'rstrip()'. – MAK

4

Negative Indizes zählen vom Ende. Und Scheiben werden vor dem angegebenen Index verankert.

if row[8][-1]==' ': 
    row[8]=row[8][:-1] 
+0

in der ersten Zeile machen kann: IndexError: String-Index außerhalb des Bereichs –

+0

Dann machst du etwas anderes falsch. Wie nicht zu überprüfen, ob die Länge größer als 0 ist. –

+1

@ user2982349-this-is-a-terrible-name: Sind Sie sicher, Zeile [8] ist nicht ""? – Thanatos

4

Sie wollen es also ohne Leerzeichen? Können Sie einfach row[8].rstrip verwenden?

+3

Sollte es nicht 'row [8] .rstrip()' sein? – MAK

+0

@MAK: Du hast natürlich Recht. Ich war faul und gab nur den Methodennamen;) – Daenyth

Verwandte Themen