Python - 如何用右侧和左侧的空格填充字符串?

Bre*_*ett 41 python string

我有两个场景,我需要在左右两个方向(在不同的情况下)填充具有一定长度的空格的字符串.例如,我有字符串:

TEST
Run Code Online (Sandbox Code Playgroud)

但我需要使字符串变量

_____TEST1
Run Code Online (Sandbox Code Playgroud)

这样实际的字符串变量长度为10个字符(在这种情况下由5个空格引导). 注意:我正在显示下划线来表示空格(否则,降价在SO上看起来不正确).

我还需要弄清楚如何反转它并从另一个方向填充空白:

TEST2_____
Run Code Online (Sandbox Code Playgroud)

是否有任何字符串辅助函数来执行此操作?或者我需要创建一个字符数组来管理它?

还要注意,我正在尝试将字符串长度保持为变量(我在上面的示例中使用了10的长度,但我需要能够更改它).

任何帮助都是极好的.如果有任何python功能来管理这个,我宁愿避免从头开始写一些东西.

谢谢!

mgi*_*son 103

你可以调查一下str.ljust,str.rjust我相信.

替代方法可能是使用格式方法:

>>> '{:<30}'.format('left aligned')
'left aligned                  '
>>> '{:>30}'.format('right aligned')
'                 right aligned'
>>> '{:^30}'.format('centered')
'           centered           '
>>> '{:*^30}'.format('centered')  # use '*' as a fill char
'***********centered***********'
Run Code Online (Sandbox Code Playgroud)

  • 不推荐使用[`str.ljust`](https://docs.python.org/2/library/stdtypes.html#str.ljust)和`rjust`方法; 你只是链接到`string`模块中的古代函数,这些函数仅在2.3版之前的版本中才需要,因为内置类型不像类,只有方法作为特例. (11认同)
  • @Brett - 看起来这些已被弃用.我更新了另一个不是的选择;-) (2认同)
  • @Raksha-类似于`'{:&gt; {width}}'。format('rightaligned',width = 30)`的作品。 (2认同)

aho*_*cke 8

Python3 f 字符串用法

l = "left aligned"
print(f"{l.ljust(30)}")

r = "right aligned"
print(f"{r.rjust(30)}")

c = "center aligned"
print(f"{c.center(30)}")
Run Code Online (Sandbox Code Playgroud)
>>> l = "left aligned"
>>> print(f"{l.ljust(30)}")
left aligned                  

>>> r = "right aligned"
>>> print(f"{r.rjust(30)}")
                 right aligned

>>> print(f"{c.center(30)}")
        center aligned        
Run Code Online (Sandbox Code Playgroud)

  • 但是,这些并不是特定于 f 字符串的,并且仅在您想要对齐字符串(不是数字,或者元组或列表)时才起作用。您可以在 f 字符串中使用与格式完全相同的语法,如其他答案中所示。因此,例如: `f'{right_stuff:&gt;{width}}'` 或 `f'{left_stuff:&lt;{width}}'`。 (2认同)