如何利用f-string填充功能生成指定位置为x的固定长度字符串
如何用f-string实现指定位置为x的固定长度字符串?
给定宽度n和索引i,生成长度为n的字符串,要求索引i处为x,其余位置均为.。
输入示例:n = 4, i = 1
输出示例:".x.."
已实现的写法
- 生成器拼接写法:
"".join("x" if j == i else "." for j in range(n)) - 字符串拼接写法:
("." * i) + "x" + ("." * (n - i - 1)) - f-string拼接写法:
f"{('.' * i)}x{('.' * (n - i - 1))}"
基于f-string填充特性的实现
可以借助f-string的对齐填充功能来实现,无需手动拼接字符串:
f"{('x'.rjust(i+1, '.')):<{n}}"
逻辑说明
'x'.rjust(i+1, '.'):将x向右对齐到长度i+1,左侧用.填充,得到前i+1位的子串(比如i=1时得到.x);:<{n}:将上述子串左对齐到总长度n,右侧自动补.,最终得到符合要求的完整字符串。
内容的提问来源于stack exchange,提问作者Abhijit Sarkar
相关产品推荐
相关产品推荐

