鑑於字符串"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
全我在這裏想要獲得列表的number
和unit
。如果沒有數字,我應該得到一個空字符串,以便我可以進一步處理時間。
此外,如果number
不是字符串,就像上面的separate()
函數返回一樣。
不,它仍然是一個字符串,即使它包含一個數字。 –