解包整数或浮点数 - 二进制搜索?

时间:2015-10-14 05:23:47

标签: python list tuples binary-search unpack

如何解压缩integer (1111)以便它返回包含列表的3元素元组?元组的第一个元素应该是包含前导数字的列表。第二个应该是前导数字后面的小数位数列表。第三个元素应该遵循小数点。

示例1:

>>> unpackNumber ( 1111 )

( [ 1] , [1 , 1, 1 ], [ ] )

示例2:

>>>unpackNumber(2.)

1 个答案:

答案 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]