2024-05-13 02:42:52 发布
网友
如果我想使我的格式化字符串动态可调,我可以从
print '%20s : %20s' % ("Python", "Very Good")
到
width = 20 print ('%' + str(width) + 's : %' + str(width) + 's') % ("Python", "Very Good")
然而,这里的字符串连接似乎很麻烦。还有别的方法可以简化事情吗?
您可以使用^{}方法来执行此操作。
>>> width = 20 >>> print("{:>{width}} : {:>{width}}".format("Python", "Very Good", width=width)) Python : Very Good
从Python 3.6开始,您可以使用^{}来执行以下操作:
In [579]: lang = 'Python' In [580]: adj = 'Very Good' In [581]: width = 20 In [582]: f'{lang:>{width}}: {adj:>{width}}' Out[582]: ' Python: Very Good'
对于那些想用python 3.6+和f-Strings做同样事情的人来说,这就是解决方案。
width = 20 py, vg = "Python", "Very Good" print(f"{py:>{width}s} : {vg:>{width}s}")
可以从参数列表中获取填充值:
print '%*s : %*s' % (20, "Python", 20, "Very Good")
甚至可以动态插入填充值:
width = 20 args = ("Python", "Very Good") padded_args = zip([width] * len(args), args) # Flatten the padded argument list. print "%*s : %*s" % tuple([item for list in padded_args for item in list])
您可以使用^{} 方法来执行此操作。
从Python 3.6开始,您可以使用^{} 来执行以下操作:
对于那些想用python 3.6+和f-Strings做同样事情的人来说,这就是解决方案。
可以从参数列表中获取填充值:
甚至可以动态插入填充值:
相关问题 更多 >
编程相关推荐