给定字符串"5mins"
,我想将它们分开[5, 'mins']
。我试过做:
>>> 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
我在这里想要的只是获取and的列表。如果没有数字,那么我应该得到一个空字符串,以便我可以进一步处理时间。number
unit
此外,如果number
不是字符串也很好,就像上面的separate()
函数返回一样。