【问题标题】:Python integer prefix range algorithmPython整数前缀范围算法
【发布时间】:2012-10-09 15:22:39
【问题描述】:

这是我的问题。我有各种长度不同的整数输入,但我只想打印某些数字前缀。前缀范围是 20000-20150 所有五位数字。到目前为止,我有:

print 20000 <= prefix <= 20150

这很好,但是我如何使用 Python 在号码中找到或捕获前缀“20000”。

示例:20000201501

使用下面的代码是行不通的,在这种情况下,因为有两个存在前缀值的实例,我只想要第一个前缀。

obj = 20000201501
if prefix in obj
    print prefix 

【问题讨论】:

    标签: python regex type-conversion


    【解决方案1】:

    很简单:

    >>> num = 20000201501
    >>> print int(str(num)[:5])
    20000
    

    所以,你需要这样的东西:

    def prefix(num):
        return int(str(num)[:5])
    
    print 20000 < prefix(20000201501) < 20150
    

    【讨论】:

      【解决方案2】:

      您可以将对象设为字符串(使用 str),将前 5 个字符切掉(作为前缀),然后将其转换回整数(使用 int):

       prefix = int(str(obj)[:5])
      

      【讨论】:

        【解决方案3】:
        def valid_prefix(number):
            return 20000 <= int(number) <= 20150
        
        #obj is string:
        obj = "20000201501"
        print valid_prefix(obj[:5])
        
        #obj is number:
        obj = 20000201501
        print valid_prefix(str(obj)[:5])
        

        【讨论】:

          猜你喜欢
          • 2012-04-22
          • 2023-04-07
          • 1970-01-01
          • 2017-03-13
          • 1970-01-01
          • 1970-01-01
          • 2012-07-07
          • 2011-02-23
          • 2017-09-12
          相关资源
          最近更新 更多