【问题标题】:Manipulating strings python 2.7操作字符串python 2.7
【发布时间】:2013-12-14 15:22:00
【问题描述】:

我正在尝试编写一个程序,该程序将在输入部分之前插入特定数字,例如给定输入“171819-202122-232425”,我希望它将数字分成几部分并使用破折号作为分隔符。我已经使用 list(str(input)) 拆分了数字,但不知道如何插入适当的数字。它必须适用于任何号码 感谢您的帮助。

输出 =

     (number)17
     (number)18                
     (number)19
     (number+1)20
     (number+1)21
     (number+1)22
     (number+2)23
     (number+2)24
     (number+2)25

【问题讨论】:

  • 在输入中每 2 位添加一个 number?这就是你想要的?

标签: python-2.7


【解决方案1】:

您可以使用拆分和正则表达式来挖掘出您的数字列表:

代码

import re

mynum = "171819-202122-232425"
start_number = 5
groups = mynum.split('-') # list of numbers separated by "-"
number_of_groups = xrange(start_number , start_number + len(groups))

for (i, number_group) in zip(number_of_groups, groups):
    numbers = re.findall("\d{2}", number_group) # return list of two-digit numbers
    for x in numbers:
            print "(%s)%s" % (i, x)

结果

(5)17
(5)18
(5)19
(6)20
(6)21
(6)22
(7)23
(7)24
(7)25

【讨论】:

    【解决方案2】:

    试试这个:

    代码:

    mInput = "171819-202122-232425"
    number = 9 # Just an example
    result = ""
    
    i = 0
    for n in mInput:
        if n == '-': # To handle dash case
            number += 1
            continue
        i += 1
        if i % 2 == 1: # Each two digits
            result += "\n(" + str(number) + ")" 
        result += n # Add current digit
    
    print result
    

    输出:

    (9)17
    (9)18
    (9)19
    (10)20
    (10)21
    (10)22
    (11)23
    (11)24
    (11)25
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多