Python-如何在每3个字符上添加空格?

2024-05-14 23:51:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要在python字符串的每3个字符上添加一个空格,但是没有太多关于如何这样做的线索。

字符串:

345674655

我需要的输出:

345 674 655   

关于如何做到这一点有什么线索吗?

谨致问候


Tags: 字符串空格问候个字符线索
3条回答

基于@mgilson答案的最佳函数

def litering_by_three(a):
    return ' '.join([a[i:i + 3] for i in range(0, len(a), 3)])
#  replace (↑) with you character like ","

一条线的解决方案是

" ".join(splitAt(x,3))

但是,Python缺少一个splitAt()函数,因此请定义一个

def splitAt(w,n):
    for i in range(0,len(w),n):
        yield w[i:i+n]

你只需要一种方法在你的字符串上迭代3块。

>>> a = '345674655'
>>> [a[i:i+3] for i in range(0, len(a), 3)]
['345', '674', '655']

然后' '.join结果。

>>> ' '.join([a[i:i+3] for i in range(0, len(a), 3)])
'345 674 655'

注意:

>>> [''.join(x) for x in zip(*[iter(a)]*3)]
['345', '674', '655']

也适用于对字符串进行分区。这将适用于任意iterable(不只是字符串),但会截断长度不能被3整除的字符串。要恢复原始文件的行为,可以在py3k中使用itertools.izip_longestitertools.zip_longest):

>>> import itertools
>>> [''.join(x) for x in itertools.izip_longest(*[iter(a)]*3, fillvalue=' ')]
['345', '674', '655']

当然,你在阅读方面付出了一点代价,因为在后一个答案中改进了泛化。。。

相关问题 更多 >

    热门问题