我想在用空格分隔的一行上多次打印字符串。
我尝试了几种版本的字符串乘法,例如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是列表。
答案 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'