Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-如何在每3个字符上添加空格?_Python - Fatal编程技术网

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

我需要在python字符串的每3个字符上添加一个空格,但没有多少关于如何执行的线索

字符串:

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]