Разделение строки на число и символы
Например, есть строка 5min
, как можно разделить ее на подстроки 5
и min
в Python 3, желательно не прибегая к регулярным выражениям?
Источник: Stack Overflow на русском
Например, есть строка 5min
, как можно разделить ее на подстроки 5
и min
в Python 3, желательно не прибегая к регулярным выражениям?
>>> def my_split(s):
for i, c in enumerate(s):
if not c.isdigit():
return s[:i], s[i:]
>>> my_split("123asdf")
('123', 'asdf')
Регулярные выражения вполне подходят для данной задачи:
#!/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