将字符串格式化为仅在 python 中的单词之间有 n 个空格
Posted
技术标签:
【中文标题】将字符串格式化为仅在 python 中的单词之间有 n 个空格【英文标题】:Format a string to have n spaces only between words in python 【发布时间】:2019-02-11 13:20:42 【问题描述】:我正在处理非空白字符之间的空格数不同的字符串。问题是这些字符串形成一个类别,并且它们必须相等。我想将它们格式化为在非空白字符 f.e. 之间具有完全相同数量的空格。 1
,但如果可能的话,这可以概括为插入更多空格。并且开头和结尾不能有空格。
n=1
的示例:
'a b b' => 'a b c'
' a b c ' => 'a b c'
【问题讨论】:
【参考方案1】:只需split
它和join
按空格排列的结果列表
>>> " ".join('a b b'.split())
'a b c'
>>> " ".join(' a b c '.split())
'a b c'
来自str.split(sep)
docs:
如果 sep 未指定或为 None,则使用不同的分割算法 应用:连续空白的运行被视为单个 分隔符,结果开头不包含空字符串 如果字符串有前导或尾随空格,则结束。
【讨论】:
@schwobaseggl,split
使用默认参数处理它【参考方案2】:
我们yourstring.strip()
让字符串从头到尾结束空格。您可以根据需要在字符串上使用join()
来格式化字符串。希望对您有所帮助。
【讨论】:
【参考方案3】:最简单的方法是使用split
和join
。
>>> (' '*n).join(s.split())
注意:' '*n
只是为了方便需要在中间加入许多空格。
#driver 值:
IN : s = 'a b b'
n = 1
OUT : 'a b b'
IN : s = ' a b c '
n = 2
OUT : 'a b c'
【讨论】:
【参考方案4】:试试这个。
def spaces_btw_characters(word, spaces):
return (' '*spaces).join(word.split())
【讨论】:
为什么?虽然此代码可能会回答问题,但提供有关其解决问题的方式和/或原因的附加上下文将提高答案的长期价值。 首先这是我在这里的第一条评论,你可以注意到,是的,提供额外的上下文更好,但我觉得在这种情况下没有必要,因为我只有 2 行代码这两条线的作用很明显。但无论如何感谢您的反馈。 想一想,您不仅是在回应问题所有者,而且是在回应以后将研究同一主题的每个人。以上是关于将字符串格式化为仅在 python 中的单词之间有 n 个空格的主要内容,如果未能解决你的问题,请参考以下文章