2015-10-14 43 views
1

如何解压integer (1111),以便返回包含列表的3元素元组?元组的第一个元素应该是包含前导数字的列表。第二个应该是在前面的数字之后并且在小数点之前的数字列表。第三个元素应该遵循小数点。解压整数或浮点二进制搜索?

例1:

>>> unpackNumber (1111) 

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

例2:

>>>unpackNumber(2.) 

回答

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] 
+0

,我寻找的输出是一系列的构成三元组元组的字符串列表。 ([2],[3],[]) 是什么应该返回,如果你输入unpackNumber(23) – user5443606

+0

你读过我的答案?我没有给你整个代码,但是完成剩下的工作相对简单,那部分是有意留下来的,你还能学到什么? –