Как извлечь определенные цифры из необработанного ввода в Python? - PullRequest
1 голос
/ 09 октября 2010

Допустим, я прошу у пользователей случайные буквы и цифры. скажем, они дали мне 1254jf4h. Как взять буквы jfh и преобразовать их в отдельную переменную, а затем взять числа 12544 и сделать их отдельной переменной?

Ответы [ 3 ]

2 голосов
/ 09 октября 2010

A для цикла достаточно прост.Лично я бы использовал filter ().

s = "1254jf4h"
nums = filter(lambda x: x.isdigit(), s)
chars  = filter(lambda x: x.isalpha(), s)

print nums # 12544
print chars # jfh
2 голосов
/ 09 октября 2010
>>> s="1254jf4h"
>>> num=[]
>>> alpah=[]
>>> for n,i in enumerate(s):
...   if i.isdigit():
...      num.append(i)
...   else:
...      alpah.append(i)
...
>>> alpah
['j', 'f', 'h']
>>> num
['1', '2', '5', '4', '4']
0 голосов
/ 09 октября 2010

редактировать: да ладно, вы уже получили свой ответ.Игнорировать.

NUMBERS = "0123456789"
LETTERS = "abcdefghijklmnopqrstuvwxyz"

def numalpha(string):
    return string.translate(None, NUMBERS), string.translate(None, LETTERS)

print numalpha("14asdf129h53")

Функция numalpha возвращает 2-кортеж с двумя строками, первая из которых содержит все буквенные символы в исходной строке, вторая содержит цифры.

Обратите внимание, что это крайне неэффективно, так как он проходит строку дважды и не учитывает тот факт, что цифры и буквы имеют последовательные коды ASCII, хотя он имеет преимущество в том, что его легко модифицировать для работы с другими кодировками.

Обратите внимание, что я извлекал только строчные буквы.Да, это не лучший фрагмент кода, который я когда-либо писал xD.Надеюсь, это поможет в любом случае.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...