Python在字符串中的字符之间添加空格.最有效的方式

use*_*814 22 python string

说我有一个字符串s = 'BINGO'; 我想迭代字符串来生成'B I N G O'.

这就是我做的:

result = ''
for ch in s:
   result = result + ch + ' '
print(result[:-1])    # to rid of space after O
Run Code Online (Sandbox Code Playgroud)

有没有更有效的方法来解决这个问题?

Kev*_*don 41

s = "BINGO"
print(" ".join(s))
Run Code Online (Sandbox Code Playgroud)

应该这样做.

  • str.join 文档的解释: `S.join(iterable) -> string` 返回一个字符串,它是可迭代中字符串的串联。**元素之间的分隔符是S。** (2认同)

Joh*_*ooy 20

s = "BINGO"
print(s.replace("", " ")[1: -1])
Run Code Online (Sandbox Code Playgroud)

时间如下

$ python -m timeit -s's = "BINGO"' 's.replace(""," ")[1:-1]'
1000000 loops, best of 3: 0.584 usec per loop
$ python -m timeit -s's = "BINGO"' '" ".join(s)'
100000 loops, best of 3: 1.54 usec per loop
Run Code Online (Sandbox Code Playgroud)

  • @MikeVella猜测,这可能与Python的源代码有[特殊情况替换处理程序]这一事实有关(https://github.com/python-git/python/blob/master/Objects/stringobject.c #L2690)当*from*string为空字符串时进行交织. (4认同)
  • 如何将其转换为每n位数的空间? (2认同)