In Python 2 ist das zweite Argument der translate
Methode können Sie Zeichen angeben
http://docs.python.org/2/library/stdtypes.html#str.translate
Das Beispiel zeigt löschen, die Sie None
als Übersetzungstabelle nur löschen Zeichen verwenden können:
>>> 'read this short text'.translate(None, 'aeiou')
'rd ths shrt txt'
(Sie können eine Liste aller ASCII-Buchstaben aus dem String-Modul als string.letters
erhalten .)
aktualisieren: Python 3 hat auch eine translate
Methode, obwohl es eine etwas andere Einrichtung erfordert:
from string import ascii_letters
tr_table = str.maketrans({c:None for c in ascii_letters})
'12345v'.transate(tr_table)
Für die Aufzeichnung Übersetzungstabellen in Python 2 viel, viel mit schneller als die Level/Filtermethode:
>>> timeit("''.join(filter(lambda c:not c.isalpha(), '12454v'))")
2.698641061782837
>>> timeit("''.join(filter(str.isdigit, '12454v'))")
1.9351119995117188
>>> timeit("'12454v'.translate(None, string.letters)", "import string")
0.38182711601257324
Ebenso in Python 3:
>>> timeit("'12454v'.translate(tr_table)", "import string; tr_table=str.maketrans({c:None for c in string.ascii_letters})")
0.6507143080000333
>>> timeit("''.join(filter(lambda c:not c.isalpha(), '12454v'))")
2.436105844999929
@kojiro Ich stehe korrigiert. –