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

标签 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']

然后' '.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']

也适用于分割字符串。这将适用于任意可迭代对象(不仅仅是字符串),但会截断长度不能被 3 整除的字符串。要恢复原始行为,您可以使用 itertools.izip_longest(itertools.zip_longest 在 py3k 中):

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

当然,您在易读性方面付出了一些代价,以换取后面这些答案中改进的泛化......

关于Python - 如何在每 3 个字符上添加空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15254195/

相关文章:

python - 尝试使用 VS 代码运行 python - "No such file or directory"

python - Numpy 将列表附加到数组而不合并它们

python - 在 Python 中读取大量的 json 文件?

python - 使用 bitbake 在项目中加快构建时间的方法?

python - 循环互相关python

python - 在单元测试中模拟 API 调用

python - 选择特定时间之间的所有记录?

没有转换说明符的 Python 不会在 % 上引发异常

python - Django Rest Framework JWT - 带有扩展用户的自定义负载

python - 为什么使用不同类型的 session 会影响变量是否在 tensorflow 中初始化?