格式化每两位数之间有一个空格的字符串

时间:2015-03-17 00:00:29

标签: python string formatting grouping

输入: string = 53434951

我需要拆分字符串,以便输出读取: 53 43 49 51

4 个答案:

答案 0 :(得分:2)

试试这个:

for i in xrange(0, len(input), 2):
    out += input[i:i+2] + " " 

答案 1 :(得分:2)

您可以使用以下内容:

s = "534349511"
print ' '.join([s[i:i+2] for i in range(0,len(s),2)])

请注意,这也适用于长度不均匀的列表 - 在一个空格后,您只需要一个数字。

答案 2 :(得分:1)

def convert(s):
    r = ""
    for i, c in enumerate(s):
        if i and i %2 == 0:
            r += ' '
        r += c
    return r

我的解决方案不会在最后打印任何额外的空格。

答案 3 :(得分:0)

您也可以使用re.findall

In [5]: import re
In [6]: s = "53434951"
In [7]: print(' '.join(re.findall(r'.{2}', s)))
53 43 49 51

使用re.sub

In [9]: print(re.sub(r'(.{2})(?=.)', r'\1 ', s))
53 43 49 51