如何解压缩integer (1111)
以便它返回包含列表的3元素元组?元组的第一个元素应该是包含前导数字的列表。第二个应该是前导数字后面的小数位数列表。第三个元素应该遵循小数点。
示例1:
>>> unpackNumber ( 1111 )
( [ 1] , [1 , 1, 1 ], [ ] )
示例2:
>>>unpackNumber(2.)
答案 0 :(得分:0)
有多种方法可以解决这个问题,但我无法想到它与二进制搜索的关系。
使用正则表达式是一种选择:
>>> import re
>>> re.findall(r'(^\d)(\d*)\.?(\d*)$', '123.4')
[('1', '23', '4')]
>>> re.findall(r'(^\d)(\d*)\.?(\d*)$', '123.')
[('1', '23', '')]
将元素进一步转换为整数列表相对简单,例如:
>>> [int(d) for d in list('23')]
[2, 3]