将字符串格式化为仅在python中的单词之间具有n个空格

时间:2018-09-06 09:50:59

标签: python string whitespace adjustment

我正在使用在非空白字符之间具有不同数量的空格的字符串。问题在于此字符串构成一个类别,并且必须相等。我想将它们格式化为非空白字符之间的空格数完全相同,例如1,但是如果可能的话,可以将其推广为插入更多空格。并且开头和结尾不应有空格。

n=1的示例:

'a  b    b' => 'a b c'
'  a b   c  ' => 'a b c'

4 个答案:

答案 0 :(得分:5)

简单地splitjoin按空格将结果列表

>>> " ".join('a  b    b'.split())
'a b c'
>>> "  ".join('  a b   c  '.split())
'a  b  c'

来自str.split(sep)文档:

  

如果未指定sep或为None,则使用不同的拆分算法   应用:连续空格的运行被视为单个   分隔符,结果开头将不包含任何空字符串   或结尾(如果字符串具有前导或尾随空格)。

答案 1 :(得分:1)

最简单的方法是使用splitjoin

>>> (' '*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'

答案 2 :(得分:0)

我们yourstring.strip()为字符串添加了从开始到结束的空格。您可以根据需要在字符串上使用join()来格式化字符串。希望对您有帮助。

答案 3 :(得分:0)

尝试一下。

def spaces_btw_characters(word, spaces):
    return (' '*spaces).join(word.split())