2017-12-28 2 views
0

Wie kann ich '\n\n\n', '\n', u'\xa0' aus dem Array entfernen?Entfernen Sie ' n n n', ' n' aus der Python-Liste

list = ['\n\n\n', '\n', '1', '2', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', u'\xa0', '\n', u'\xa0\xa0', '\n', '3'] 

Ich habe .remove("'\n'") versucht, aber ich erhalte die Fehlermeldung: list.remove (x): x nicht in der Liste

+7

Wie haben sie es bekommen an erster Stelle? Das könnte ein besserer Ort sein, um das zu lösen. – Barmar

+0

'' '\ n' "' sollte nur '" \ n "' sein. Die Anführungszeichen befinden sich nicht in der Zeichenfolge, sie sind nur ein Teil der Syntax zum Erstellen von Zeichenfolgenliteralen. – Barmar

+0

Sie haben keine einfachen Anführungszeichen in der Liste, verwenden Sie list.remove ("\ n"), nicht list.remove ("'\ n'") – henrekt

Antwort

1

Verwenden Sie ein Array Verständnis:

[x for x in list if not x.isspace() and u'\xa0' not in x]

0

nenne ich würde nicht die Liste list besser so etwas wie:

l = ['\n\n\n', '\n', '1', '2', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', u'\xa0', '\n', u'\xa0\xa0', '\n', '3'] 

Dann können Sie filter versuchen:

> list(filter(lambda x: '\n' not in x and u'\xa0' not in x, l)) 
> ['1', '2', '3'] 
1

Statt die nicht-alphanumerischen Zeichen von Targeting, für die alphanumerischen Zeichen suchen sich:

import re 
l = ['\n\n\n', '\n', '1', '2', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', u'\xa0', '\n', u'\xa0\xa0', '\n', '3'] 
new_l = filter(lambda x:re.findall('^[a-zA-Z0-9]+$', x), l) 

Ausgang:

['1', '2', '3']