在一行中用空格分隔多次打印字符串的pythonic方法是什么?

时间:2019-05-24 18:10:34

标签: python

我想在用空格分隔的一行上多次打印字符串。

我尝试了几种版本的字符串乘法,例如string * 3。 我也尝试过" ".join(),但在每个字符而不是每个字符串之间都留有空格。我认为join需要一个列表而不是一个字符串。

这是我的有效代码的详细版本: fout.write(info[2]+" "+info[2]+" "+info[2]+'\n')

另一个版本,我在每个字符串之前插入字母x: fout.write("x"+info[2]+" x"+info[2]+" x"+info[2]+'\n')

我的代码可以工作,但似乎还有一种更Python化的方式,例如我打印称为info的整个列表的版本,而不仅仅是重复info [2]的版本: fout.write(" ".join(x)+'\n'),其中x是列表。

3 个答案:

答案 0 :(得分:2)

字符串乘法是正确的主意。

print(((string+' ') * 3).rstrip())

rstrip()仅删除尾随空格

如果您的字符串包含结尾空格,则rstrip()将错误地删除它。在这种情况下,请改用切片:

print(((string+' ') * 3)[:-1])

答案 1 :(得分:2)

我个人会这样做:

' '.join([string for _ in range(3)])

使用列表str.join的速度更快,因为Python无论如何都会将生成器表达式耗尽到列表中。

答案 2 :(得分:2)

将字符串放入列表

print(' '.join(['hello']*3))

'hello hello hello'