Данная строка "5mins"
, я хочу отделить их от [5, 'mins']
. Я пробовал делать:Как отделить целое число/float и строку от данной строки?
>>> re.findall(r"\d+|\D+", '5mins')
['5', 'mins']
, который, кажется, делает хорошо, но:
>>> def separate(string):
... return re.findall(r"\d+|\D+", string)
...
>>> print(separate('3hours'))
['3', 'hours']
>>> print(separate('7secs'))
['7', 'secs']
>>> print(separate('now'))
['now']
Проблема этого метода является то я получаю ValueError
, если я сделал назначение:
>>> number, unit = separate('now')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: need more than 1 value to unpack
Полностью Я хочу получить список от number
и unit
. Если числа нет, я должен получить пустую строку, чтобы я мог обработать время.
Кроме того, это хорошо, если number
не является строкой, например, выше separate()
функция возвращает.
Нет, это все еще строка, даже если она содержит число. –