在python中,在字符串中的每个字符后添加空格(pythonic方式)

在python中,在字符串中的每个字符后添加空格(pythonic方式),python,string,Python,String,假设我有一个字符串: s = 'HelloStackOverflow' 将其转换为以下内容的最“python”方式是什么: 'H e l l o S t a c k O v e r f l o w ' ? (最后一个字符后的空格不重要) 我可以想出: s = ''.join(map(lambda ch: ch+' ', s)) 但是我认为有一种更透明的方法可以做到这一点您可以尝试以下代码 ' '.join(s) Out[1]: 'H e l l o S t a c k O v e r f

假设我有一个字符串:

s = 'HelloStackOverflow'
将其转换为以下内容的最“python”方式是什么:

'H e l l o S t a c k O v e r f l o w '
?

(最后一个字符后的空格不重要)

我可以想出:

s = ''.join(map(lambda ch: ch+' ', s))

但是我认为有一种更透明的方法可以做到这一点

您可以尝试以下代码

' '.join(s)
Out[1]: 'H e l l o S t a c k O v e r f l o w'

您可以尝试以下代码

' '.join(s)
Out[1]: 'H e l l o S t a c k O v e r f l o w'

使用
re.sub
将字符串中的每个字符替换为捕获的字符,后跟一个空格

s = 'HelloStackOverflow'
print re.sub("(.)", r'\1 ', s)

H e l l o S t a c k O v e r f l o w 

使用
re.sub
将字符串中的每个字符替换为捕获的字符,后跟一个空格

s = 'HelloStackOverflow'
print re.sub("(.)", r'\1 ', s)

H e l l o S t a c k O v e r f l o w 

为了你想要的行为



对于您想要的确切行为。

这不符合OP对尾随空格的要求。我不确定是否确实需要它。我想我们可以用
+'
cast to
list
手动在它后面添加一个空格,似乎不需要hankselegant@PaulPanzer同意。这不符合OP对尾随空格的要求。我不确定它是否真的需要。我想我们可以用
+'
cast to
list
手动在它后面添加一个空格,似乎不需要hankselegant@PaulPanzer同意。
'.join(s)
-?你真的想要尾随空格吗?不,我不介意尾随空格。两种方式都可以。(我的句子让人困惑吗?如果是的话,请把它编辑得更清楚)不,但是你的例子很明显包含了一个尾随空格。大多数情况下,它是不需要的,所以
“”。如果你不想留下一个尾随空格,那么join(s)
符合要求。只需在谷歌上搜索你的确切标题,我就直接找到了我标记为重复的问题。在发布问题之前,请尝试做一些研究。
“”。加入。
-?你真的想要尾随空间吗?不,我不介意尾随空间。两种方式都可以。(我的句子让人困惑吗?如果是的话,请把它编辑得更清楚)不,但是你的例子很明显包含了一个尾随空格。大多数情况下,它是不需要的,所以
“”。如果你不想留下一个尾随空格,那么join(s)
符合要求。只需在谷歌上搜索你的确切标题,我就直接找到了我标记为重复的问题。在发布问题之前,请尝试并做一些研究。很好,我不确定它是否更透明,但它确实很聪明。我的
timeit
测试表明,这比
''慢好几倍。join(s)
,功能相当(除了OP表示他并不真正想要/需要的尾随空格),JonathonReinhart如果OP的替换要求有轻微的变化,那么公认的答案可能会有缺陷,而基于正则表达式的解决方案则很容易适应。我不确定这个答案是否值得否决。我可以编写一个C扩展,以确保OP将来可能需要的任何字符串操作都具有最大的灵活性。当然,这不是一个好的解决方案,对吗?为您的需求编写代码,而不是在需要时感知到的未来需求。更复杂,效率更低;我在一次代码审查中看到了这一点,我会立即予以回击。很好,我不确定它是否更透明,但它确实很聪明。我的
timeit
测试表明,这比
''慢好几倍。join(s)
和功能等效(除了OP表示他并不真正想要/需要的尾随空间),JonathonReinhart如果OP的替换要求有轻微的变化,那么公认的答案可能会有缺陷,而基于正则表达式的解决方案则很容易适应。我不确定这个答案是否值得否决。我可以编写一个C扩展,以确保OP将来可能需要的任何字符串操作都具有最大的灵活性。当然,这不是一个好的解决方案,对吗?为您的需求编写代码,而不是在需要时感知到的未来需求。更复杂,效率更低;我在一次代码审查中看到了这一点,我会立即予以回击。