【问题标题】:Unpack integer or float - binary search?解包整数或浮点数 - 二进制搜索?
【发布时间】:2015-10-14 05:23:46
【问题描述】:

如何解压integer (1111),使其返回包含列表的三元素元组?元组的第一个元素应该是一个包含前导数字的列表。第二个应该是跟随前导数字并在小数点之前的数字列表。第三个元素应该跟在小数点之后。

示例 1:

>>> unpackNumber ( 1111 )

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

示例 2:

>>>unpackNumber(2.)

【问题讨论】:

    标签: python list tuples


    【解决方案1】:

    有多种方法可以解决这个问题,但我想不出它与二进制搜索有什么关系。

    使用正则表达式是一种选择:

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

    【讨论】:

    • 我正在寻找的输出是一系列组成三元素元组的字符串列表。 ( [2], [3], [] ) 是输入 unpackNumber(23) 时应该返回的内容
    • 你看我的回答了吗?我不会给你完整的代码,但是做剩下的工作相对简单,那部分是故意留给你的,你还能怎么学?
    猜你喜欢
    • 1970-01-01
    • 2015-03-30
    • 2021-07-30
    • 2020-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-21
    相关资源
    最近更新 更多