3

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

示例n=1

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

4 回答 4

5

简单地split说它和join空格的结果列表

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

来自str.split(sep)文档:

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

于 2018-09-06T09:53:03.330 回答
2

最简单的方法是使用splitand join

>>> (' '*n).join(s.split())

注意:这' '*n只是为了方便需要在中间加入许多空格。

#驱动程序值:

IN : s = 'a  b    b'
     n = 1
OUT : 'a b b'

IN : s = '  a b   c  '
     n = 2
OUT : 'a  b  c'
于 2018-09-06T10:00:57.437 回答
1

尝试这个。

def spaces_btw_characters(word, spaces):
    return (' '*spaces).join(word.split())
于 2018-09-06T10:26:06.000 回答
0

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

于 2018-09-06T09:54:09.187 回答