在循环中连接字符串以创建文本块的 pythonic 方法



有没有一种pythonic方法可以在循环中连接字符串以创建文本块?

例:

for x in range(4):
content = f'{x}[block]'
content+content
print(content)

期望的结果:

0[block]
1[block]
2[block]
3[block]

您可以将str.join()生成器表达式一起使用,通过换行符连接块字符串:

print("n".join(f"{x}[block]" for x in range(4)))

或者为了提高性能,请改用列表推导

print("n".join([f"{x}[block]" for x in range(4)]))

有关为什么第二种方法比第一种方法更快的更多信息,请参阅此答案

此外,您还可以将每个块字符串附加到列表中,并在末尾连接它们:

blocks = []
for x in range(4):
blocks.append(f"{x}[block]")
print("n".join(blocks))

如果我们想简单地打印每个块字符串而不用换行符连接,我们可以使用print()中的sep关键字:

print(*(f"{x}[block]" for x in range(4)), sep="n")

输出:

0[block]
1[block]
2[block]
3[block]

最新更新