2014-10-24 1 views
0

Это работает:Есть ли элегантный способ лишить всех алфавитных символов от конца строки?

stripped_str = whatever_str.rstrip("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ") 

но только кажется, очень безвкусный мне. Любой более чистый способ сделать это?

+0

это расплывчатый вопрос. определения «чистый» и «элегантный» субъективны, и они часто зависят от того, как код будет использоваться. – akonsu

+0

http://stackoverflow.com/questions/1450897/python-removing-characters-except-digits-from-string – heri0n

+0

@ heri0n Это не связано ... это спрашивает, как вырезать из * конца * строки, не как удалить символ * в любом месте * в строке ... –

ответ

5

Возможно, вы ищете string.ascii_letters:

from string import ascii_letters 
stripped_str = whatever_str.rstrip(ascii_letters) 

Это позволяет делать то же самое, как ваш текущий код, но без ввода весь алфавит.

Ниже демонстрация:

>>> from string import ascii_letters 
>>> ascii_letters 
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' 
>>> 
>>> '123abdjihdkffyifbgh'.rstrip(ascii_letters) 
'123' 
>>>