Python-如何在每3个字符上添加空格?
我需要在python字符串的每3个字符上添加一个空格,但没有多少关于如何执行的线索 字符串:Python-如何在每3个字符上添加空格?,python,Python,我需要在python字符串的每3个字符上添加一个空格,但没有多少关于如何执行的线索 字符串: 345674655 我需要的输出: 345 674 655 关于如何做到这一点有什么线索吗 致以最诚挚的问候,您只需要一种方法,以3块的形式迭代字符串 >>> a = '345674655' >>> [a[i:i+3] for i in range(0, len(a), 3)] ['345', '674', '655'] 然后加入结果 >>&g
345674655
我需要的输出:
345 674 655
关于如何做到这一点有什么线索吗
致以最诚挚的问候,您只需要一种方法,以3块的形式迭代字符串
>>> a = '345674655'
>>> [a[i:i+3] for i in range(0, len(a), 3)]
['345', '674', '655']
然后加入结果
>>> ' '.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
(itertools.zip_longest
在py3k中):
当然,为了提高后面这些答案的泛化性,您需要在阅读方便方面付出一点代价。一行解决方案将是
" ".join(splitAt(x,3))
但是,Python缺少一个splitAt()
函数,所以请自己定义一个
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,这是基于用户答案的最佳函数
从单位开始将字符串反转为跳跃3,然后再次反转如何。目标是获得“12345”
1234
的期望输出是什么?如果长度不能被3整除,我们可以这样做吗?从左开始,在每三位数字插入空格后
' '.join(a+b+c for a,b,c in zip(x[::3], x[1::3], x[2::3]))
def litering_by_three(a):
return ' '.join([a[i:i + 3] for i in range(0, len(a), 3)])
# replace (↑) with you character like ","
n="12345"
" ".join([n[::-1][i:i+3] for i in range(0, len(n), 3)])[::-1]