Разделение строки на число и символы

Рейтинг: 0Ответов: 2Опубликовано: 31.01.2015

Например, есть строка 5min, как можно разделить ее на подстроки 5 и min в Python 3, желательно не прибегая к регулярным выражениям?

Ответы

▲ 4Принят
>>> def my_split(s):
    for i, c in enumerate(s):
        if not c.isdigit():
            return s[:i], s[i:]

>>> my_split("123asdf")
('123', 'asdf')
▲ 2

Регулярные выражения вполне подходят для данной задачи:

#!/usr/bin/env python
import re

def diff2seconds(time_diff_string, unit2seconds={'min': 60, 'd': 86400}):
    n, unit = re.match(r"(\d+)(min|y|w|d)$", time_diff_string).groups()
    return int(n) * unit2seconds[unit]

print(diff2seconds('5min')) 
# -> 300