提问人:Abhijit Sarkar 提问时间:10/30/2023 最后编辑:Abhijit Sarkar 更新时间:10/30/2023 访问量:61
使用 f-string 的句点动态填充
Dynamic padding with period using f-string
问:
给定一个宽度和一个索引,如何生成一个长度为 at index 和 at 剩余索引的字符串?n
i
n
x
i
.
例如:
Input: n = 4, i = 1
Output: ".x.."
目前我正在做:
"".join("x" if j == i else "." for j in range(n))
另一种选择:
("." * i) + "x" + ("." * (n - i - 1))
我还可以做:
f"{('.' * i)}x{('.' * (n - i - 1))}"
所有工作,但我想知道是否有办法使用 f-string 做到这一点,也许使用某种形式的填充,如图所示?
答:
1赞
Sayse
10/30/2023
#1
您可以混合使用 ljust 和 must 乘以创建字符串
>>> f"{'.' * i}x".ljust(n, ".")
'.x..'
或者通过指定对齐的分隔符来单独使用 f 字符串
f"{'.' * i}{'x':.<{n-i}}"
评论
0赞
Abhijit Sarkar
10/30/2023
如我的问题所示,我可以在没有ljust
- f"{('.' * i)}x{('.' * (n - i - 1))}"
0赞
Sayse
10/30/2023
@AbhijitSarkar - 更新
0赞
Abhijit Sarkar
10/30/2023
赞成,但是有没有办法避免两边的字符串复制和填充,也许使用 和 的某种组合?>
<
0赞
Sayse
10/30/2023
@AbhijitSarkar - 我找不到任何...不过看一看
1赞
Sayse
10/30/2023
@AbhijitSarkar - 但我不太喜欢它(比答案中的版本更难阅读)f'''{f"{'x':.<{n-i}}":.>{n}}'''
评论