我需要在python字符串的每个3个字符上添加一个空格,但没有关于如何执行该操作的许多线索。Python - 如何在每个3个字符上添加空格?
字符串:
345 674 655
就如何实现这一目标任何线索:
345674655
,我需要的输出?
最好的问候,
我需要在python字符串的每个3个字符上添加一个空格,但没有关于如何执行该操作的许多线索。Python - 如何在每个3个字符上添加空格?
字符串:
345 674 655
就如何实现这一目标任何线索:
345674655
,我需要的输出?
最好的问候,
你只需要一种方法来遍历你的字符串中块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']
也适用于分区的字符串。这将任意iterables(不只是字符串)工作,但截断,其长度不被3整除要恢复原始行为的字符串,可以使用itertools.izip_longest
(在py3k itertools.zip_longest
):
>>> import itertools
>>> [''.join(x) for x in itertools.izip_longest(*[iter(a)]*3, fillvalue=' ')]
['345', '674', '655']
当然,你付出一点在方便阅读,在这些后面的答案改进概括而言...
一个单行的解决方案将是
" ".join(splitAt(x,3))
然而
,Python是缺少splitAt()
˚F油膏,所以自己定义一个
def splitAt(w,n):
for i in range(0,len(w),n):
yield w[i:i+n]
与加入“ - ”经连结的各3个字符的第一,第二和第三个字符:
' '.join(a+b+c for a,b,c in zip(x[::3], x[1::3], x[2::3]))
确保字符串长度可分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 ","
什么的'1234'所需的输出最佳功能? – NPE 2013-03-06 17:39:31